第二天:C语言分支、while循环、函数、数组、操作符

1、分支语句

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int input = 0;
	printf("你能学好C语言吗?(1/0)\n");
	scanf("%d", &input);//1/0
	if (input == 1)
		printf("相信你\n");
	else
		printf("进厂吧\n");
	return 0;
}

2、循环语句

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int line = 0;
	while (line<20000)
	{
		printf("敲一行代码,%d\n", line);
		line++;
	}
	if (line>=20000)
	{
		printf("好offer,%d\n",line);
	}
	return 0;
}

3、函数

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("请输入两个数:");
	scanf("%d%d", &num1, &num2);
	sum = num1 + num2;
	printf("sum=%d\n", sum);
	return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int Add(int x, int y)
{
	int z = x + y;
	return z;
}
int main()
{
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("请输入两个数:");
	scanf("%d%d", &num1, &num2);
	sum = Add(num1, num2);
	printf("sum=%d\n", sum);
	return 0;
}

我用函数定义了加法,以后直接调用这个函数。 简化代码

4、数组

一组相同类型元素的集合   int arr[10]={1,2,3,4,5,6,7,8,9,10}; //定义一个整型数组最多放10个元素

数组下标从0开始 调用时 可选择n-1 代表数组中的n  eg:printf("%d",arr[4]);  打印为5

 

 数组+while循环的应用

5、操作符

算术操作符

+ 加

- 减

* 乘

/ 除       eg:5/2=2

% 取模=取余数       eg:5/2=1

移位操作符

<<  左移二进制位

>>  右移二进制位

位操作

二进制位操作

& 按位  与   即都真为真   8&3=1000&0011=0000=0

| 按位   或    即都假为假    6&3=0110|0011=0111=7

^ 按位  异或 即相异为1 相同为0    3^5=0011^0101=0110=6

赋值操作符

= 赋值

== 判断相等

+=   eg:a =a+10 等价于 a +=10

-=    eg:a =a-10 等价于 a -=10

*=    eg:a =a*10 等价于 a *=10    

/=    eg:a =a/10 等价于 a /=10    

&=    eg:a =a&10 等价于 a &=10

|=    eg:a =a|10 等价于 a |=10

^=    eg:a =a^10 等价于 a ^=10

<<=    eg:a =a<<10 等价于 a <=10

>>=    eg:a =a>>10 等价于 a >=10

单目操作符

!  逻辑反操作  把真变成假,把假变成真 只有0为假 其他全为真 

-    负值

+   正值

&   取地址

sizeof   操作数的类型长度(以字节为单位)

~    对一个数的二进制按位取反  

前置--、   先--,再使用       eg:int a=10 int b = --a;    得出a=9 b=9

后置--      先使用,再--       eg: int a =10  int b = a-- ;  得出a=9 b=10

前置++     先++,再使用       eg:int a=10 int b = ++a;    得出a=11 b=11

后置++     先使用,再++       eg: int a =10  int b = a++ ;  得出a=11 b=10

*   间接访问操作符(解引操作符)

(类型)  强制类型转换

【补充】原码、反码、补码:

1.只要是整数,内存中存储的都是二进制的补码 【整数包含正整数和负整数】

2.正整数:原码、反码、补码 都相同

3.负整数:

原码:直接按照正负,写出二进制序列,最高位为符号位0代表正,1代表负。

反码:把原码的符号位保持不变,其他位按位取反

补码:反码+1

eg:

-2的原码:4个字节=32个bit   10000000000000000000000000000010  加上符号位一共32个

-2的反码:11111111111111111111111111111101

-2的补码:11111111111111111111111111111110

关系操作符

>   大于

>=  大于等于

<  小于

<= 小于等于

!=  用于测试“不相等”

==  "用于测试相等"

逻辑操作符

&&  逻辑与      3&&5=真=1   0&&5=假=0

||   逻辑或       3||0=真=1    0||0=假=0

条件操作符

exp1  ?  exp2  :  exp3

如果a>b为真,那么max=a 否则max=b

逗号表达式 

exp1,exp2,exp3,......expN

下标引用、函数调用和结构成员

[ ]    ( )    .    ->

 

auto 自动         eg:  int a =10;=   auto int a =10;  默认省略

break  打破循环

case    switch语句中的关键字

char  字符型

const  const常变量,给变量赋予常属性

continue 继续,用于循环语句

default  默认,用于switch语句

do  do while 循环

double 双精度浮点型

else  if语句

enum 枚举常量

extern  引入外部符号

fioat 单精度浮点型

for 循环

goto 语句

if 语句

int 整型

long 长整型

register  寄存器关键字   eg:register int a=10; //建议把a定义成寄存器变量   后续编译机器判断

计算机存储数据:寄存器、高速缓存、内存、硬盘     依次访问速度变慢,存储空间变大;CPU处理数据优先从寄存器中读取,若没有,依次读取

return 返回值

short 短整型

signed  有符号的  eg: int a = -2;就是 signed int a = -2; 默认省略 //int 定义的变量是有符号的

unsigned  无符号的

sizeof 计算数据大小

static 静态的

struct 结构体关键字

swith 语句

typedef  类型定义

union 联合体、共用体

void 无、空

volatile  

while 循环

【重点介绍】

static:

修饰局部变量时,局部变量的生命周期变长。

 修饰全局变量时,改变了全局变量的作用域即只能在源文件内部使用无法跨文件使用。

 

static修饰函数时,改变了函数的链接属性(函数本身具有外部链接属性)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值