sizeof 补充笔记
sizeof内部运算不是实际运算
如代码如下
int a=3;
int b;
b=sizeof(a=a+4);
printf("%d",a);
最后显示的结果为3
在sizeof里面的a+4的运算只是一个虚拟的运算,他不会在程序中显示出来
~按(二进制)位取反
把0变成1 得出的是补码
补码减一得反码
补码减一取反得源码
例如:
a=4
~a
4在二进制中的显示的源码为
000000000000000000000000000000100 源码
111111111111111111111111111111011 反码
1111111111111111111111111111010 补码
000000000000000000000000000000101 最终显示的结果
最后结果为5
++a a++
前置加加 后置加加
前置加加:先加在使用a,
后置加加:先使用a再加
- -同理
(类型)强制类型转换
例如:
int a=3.14 (3.14不是整形)
我们可以强制转换
改为
int a=(int)3.14
可以强制转化为整形
&& 逻辑与
两个是真才是真,一个真一个假为假,两个是假为假
说明一下:
如程序中出现
a++&&++b&&c++
如果a++为假,则后面的++b和c++不会进行运算
同理,如果a++为真,++b为假,则只运行a++和++b,不会运行c++(这个很重要,很容易混淆的!!!)
丨丨 逻辑或
两个是真为真,一个真一个假为假,两个为假为假
说明一下:
如果程序中出现
a++丨1++b1丨c++
首先,如果a++为正,则后面的++b和c++不会进行运算
同理,如果a++为假,++b为真,则只运行a++和++b,不会运行c++(这个很重要,很容易混淆的!!!)
条件操作符
exp1?exp2;exp3
如果要表达的为
if(a<3)
a=3
else
a=-3
则可以写为:
a<3?:3;-3
逗号表达式
exp1,exp2,exp3,.....
逗号表达式就是分开运算,从左到右,最后结果以最后一个式子结果为准
不建议过于使用
在学习过程中,一定要做笔记!!!!不然很容易忘记的!!!依旧的强调!!