C语言操作符总体可分为:算数操作符,移位操作符,位操作符,赋值操作符,复合赋值符,单目操作符,关系操作符,逻辑操作符,条件操作符和逗号操作符。
今天就说一下其中一些需要注意的地方。
算数操作符中,/ 操作符两边都是整数时,执行整除运算,其他条件下执行浮点数除法。%操作符它只接受两个整形操作数。
移位操作符,其中需要注意的是:无符号值执行的所有移位操作都是逻辑移位,但对于有符号值采用逻辑移位还是算数移位取决于编译器。
注意不要使用 例:a<<-3 此类的形式。它会根据编译器而产生不同的结果,其效果也是不可预测的。
|有一个为真则为真,全假则假。
^相同为假,相异为真。
赋值操作符=
复合赋值符+= -= *= /= %= <<= >>= &= ^= |=
单目操作符! ++ - & sizeof ~ -- + - 类型
&取地址符
sizeof;计算长度
sizeof (int); sizeof(num); sizeof num;这三种方法都可以,但不能表示为 sizeof int;
++a=10;这种表达式是不正确的,++a的结果是a值的拷贝,并不是变量本身,无法向一个值进行赋值。
关系操作符< > >= <= == != 注意==与=区分。
逻辑运算符&& ||
&&:逻辑与 1&&1为真,当&&左边为0时,右边将不再计算。
||:逻辑或 1||0为真,当左边为1时,右边将不再计算。
条件操作符 exp1?exp2 : exp3
逗号操作符,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
例:
:
至此再提出一个操作符优先级的问题