算数运算符
加减乘除,先后关系和数学一样
/是除法取整,%是取余,不允许对小数取余
对负数取余,结果为余数的绝对值 10% -3 = 1 -10 %-3 = -1
如果分母写成0的话,编译器编译时通不过
cpu中的运算器只能做加法和左移位运算,其他的运算符都是通过他们俩模拟出来的
自增(++)和自减(–)
前缀自增和后缀自增
前缀自增:int a = 10
++a //a=a+1,先自增再取值
a++ //a=a+1 ,先取值,再自增
printf(“%d\n”,a++) //显示的a=10
printf(“%d\n”,++a) //显示的a=11
前缀自增和前缀自减是一样的,只是增变成了减而已
赋值和比较
赋值 =
加等于+=
减等于-=
乘等于*=
不等于!=
判断是否相等==
小于等于<=
大于等于>=
逻辑运算符:与或非
通常0为假 非0 为真
与&&
或 ||
非 !
按位取反 ~
运算符的优先级
【】 ()> ++ – 后缀高于前缀 强转 sizeof > 算数运算 > 比较 》逻辑 》 三目》赋值 》逗号
要背优先级表
三目运算符?:
表达式1?表达式2:表达式3
通常表达式1是一个判别表达式,如果1是真就执行表达式2,否则就执行表达式3
三目运算符的结合 性是从右到左
逗号运算符
//逗号运算符
int main(void) {
int a = 10,b = 20,c = 30;
int x = (a = 1, b = 2, c = 5 ); //赋值给x的是整个逗号表达式的最后一个
//优先级最低
printf("x=%d\n", x);
printf("a=%d\n", a);
printf("b=%d\n", b);
printf("c=%d\n", c);
return 0;
}