Appearance
操作符
操作符
- 算数操作符:+,-,*,/
- 移位操作符:<<,>>
- 位操作符:|,&
- 赋值:=
- 复合运算符:+=,-+,|=
- 单目操作符:只接受一个参数: *, ++, !
sizeof :可以是函数,也可以是运算符
C
1 #include <stdio.h>
2
3 int main(){
4 int a;
5 printf("%d\n", sizeof a);
6 return 0;
7 }
注:因为sizeof不需要对内部的参数求值,所以sizeof(a = a + 2)并没有改变a的值
C1 #include <stdio.h> 2 3 int main(void) 4 { 5 int a=0; 6 int b=2; 7 printf("sizeof %d\n", sizeof(a=a+b)); 8 printf("a = %d\n", a); 9 return 0; 10 } result: sizeof 4 a = 0
强制转换符 优先级很高,如果对表达式使用,需要用括号括起来
++和--实质上是复制了一份操作的,所以不能使用
++a = 10;
这样的代码
- 关系操作符:>, <, >=, <= 返回的是一个整形
注:赋值操作符在相等测试的地方使用也是正确的
if(x = 5){}
并不会报错,切运行时判断一直为正确
- 逻辑操作符: &&, ||
在进行比较的时候,如果&&左侧的值是错误就不会比较右边,||是左侧为正确的时候不会比较右边
- 条件操作符:expression ? expression3 ! expression3;
- 逗号操作符:将两个或者多个表达式使用逗号隔开,从左向右求值,最后一个表达式的值就是结果
- 下标引用,函数调用,结构体成员
布尔值
0是假,别的都为真
左值和右值
左值就是一个位置,右值意味着一个一个值