Skip to content

操作符

操作符

  • 算数操作符:+,-,*,/
  • 移位操作符:<<,>>
  • 位操作符:|,&
  • 赋值:=
  • 复合运算符:+=,-+,|=
  • 单目操作符:只接受一个参数: *, ++, !

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的值

C
  1 #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是假,别的都为真

左值和右值

左值就是一个位置,右值意味着一个一个值