1,算术操作符:+ - * / %
float函数,浮点型,在9/2两边,显示小数任一一个数显示小数,结果都会显示4.5
int a = 9 % 2;//(取模,或者取余)
printf("%d\n", a);
结果为4.5;
2、左移函数,
3、位操作符:
& 按位与
\ 按位或
| 按位或
^ 按位异或
4、符合赋值符
a=a+5;
a+=5;
a=a%5;
a%=5;
5,一般的判断类型,逻辑反操作,单目操作符
int main()
{
int a = 0;
printf("%d\n", !a);//感叹号变不假,默认为1;
if(a)
{
//如果a为真,做事
}
if(!a)
{
//如果a为假,做事
}
return 0;
}
6,sizeof,是一个操作符,计算类型,或者变量大小;
例如:a和10位置一样,大小一样都是4;
sizeof 操作符后面的括号可以省略;
一个数组里面的元素是int型;所以 arr[0] 的大小是4;
用数组总大小除第一个元素大小,就得到个数。
7,取反操作符 ~
解析:
把所有二进制中1变0, 0变1.
整数a是0
整型变量是:“4个字节” 一个字节数是8bit位;
所以0的二进制是00000000 00000000 00000000 00000000
~a :11111111 11111111 11111111 11111111
整数在内存中存的是“补码”,整数在二进制表示有三种:原码,反码,补码;
-1:
10000000 00000000 00000000 00000001 (原码)最高位是符号位
111111111 11111111 11111111 11111110 (反码):最高位不变,其他取反
11111111 11111111 11111111 11111111 (补码)反码的二进制序列+1,得到补码
在内存中里面存储,存储的是补码。 读取的时候是要读取原码。
所以,“0“取反(~a),再倒回去,“补码-1” 得到反码;反码取反,得到原码;即“-1”;
正整数:(原码,反码,补码相同)
8,前置++
9、后置++
这里不够细容易错误;一定是先a=10给b赋值!! 然后再a++
10
(类型) 强制类型转换
(int)是强制类型转换;
11,逻辑操作符;
&& 逻辑与 :有一个为假,都为假;两个同时为真,都为真;
|| 逻辑或 :都为假,才是假。
12 条件操作符(三目操作符);
表达式1 ? 表达式2 :表达式3
表达式1如果成立,表达式2计算,整个表达式是 表达式 2 的结果;
表达式1如果no成立,表达式3计算,整个表达式是 表达式3 的结果;
注释部分、一个三目操作符就搞定,牛啊牛啊。
13,逗号表达式,从左向右依次计算,(a+A,b+s,g+G)
结果是最后一个表达式的结果
14,下标引用,函数调用和结构成员;
[] 数组的下标引用操作符,例如arr[4];
() 函数调用操作符 printf("hehe\n")
printf("hehe\n")
return 0 ;