C语言想必大家都不陌生,今天我想跟大家分享一下我所了解和学习到的有关C语言操作符的相关知识。
1.算术操作符
+ - * / %
(1)除了%操作符以外,其他的几个操作符可以作用于整数和浮点数;%操作符的两个操作数必须都为整数,返回的是整数之后的余数;
(2)对于/操作符,如果两个操作数都为整数,执行的就自然是整数除法,但是只要有浮点数执行的就是浮点数除法;
2.移位操作符
<< 左移操作符 >> 右移操作符
(1)左移操作符的移动规则是:“左边抛弃,右边补零”;这个意思就是左移一位之后左边多余出来的一位直接舍弃,右边直接加零;
(2)右移操作符的移动规则相比左移来说比较复杂,首先右移运算分为两种:a.逻辑位移,即左边用零填补,右边丢弃;b.算术位移,左边用原该值的符号位填充,右边丢弃。
注意:对于移位运算符,不要移动负数位,这个是标准未定义的。
3.位操作符
& 按位与 | 按位或 ^ 按位亦或
注意:这里的操作数必须都是整数。
4.赋值操作符
(1)赋值操作符是一个很棒的操作符,它可以让你得到一个你之前不满意的值,意思就是说你可以给自己重新赋值。
(2)赋值操作符可以写成很多的复合赋值符,比如说:+= -= *= /= %= >>= <<= &= |= =等等这些运算符都可以写成复合的效果。
5.单目操作符
! 逻辑反操作 - 负值 + 正值 &取地址 sizeof 操作数的类型长度(以字节为长度) ~ 对一个数的二进制按位取反 -- 前置、后置-- ++ 前置、后置++ * 间接访问操作符(解引用操作符)(类型) 强制类型转换
6.关系操作符
> >= < <= != (不等于) ==(相等)
注意:区别==和=,一个是判断,一个是赋值。
7.逻辑操作符
&& 逻辑与 || 逻辑或
注意:区别逻辑与和按位与,逻辑或和按位或。
8.条件操作符
exp1 ? exp2 : exp3
9.逗号表达式
exp1, exp2, exp3,……,expN,逗号表达式,从左向右依次执行,整个表达式的结果是最后一个表达式的结果。
10.下标引用、函数调用和结构成员
(1)[ ] 下标引用操作符
操作数:一个数组名+一个引索值;
(2)()函数调用操作符
接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数是传达给函数的参数;
(3)访问一个结构的成员
.结构体.成员名
->结构体指针->成员名