您的位置:首页 > 编程语言 > C语言/C++

C语言的操作符总结

2018-04-06 17:21 525 查看
C语言的操作符有这么几类:算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员。
1.算术操作符
+ - * / %
%操作符的两个操作数必须为整数,结算结果是整除之后的余数。除了%操作符之外,其他几个操作符可以作用于整数和浮点数。
/操作符的两个操作数都为整数,则执行整数除法、而只要有浮点数就执行浮点数除法。
2.移位操作符
<< 左移操作符
>> 算术右移操作符  >>> 逻辑右移操作符
<< 左移移位规则:左边抛弃、右边补0,这里要注意比如num<<1,num的值没有改变,因为没有赋值操作
>>右移移位规则:这个和左移有点区别,右移分为算术右移和逻辑右移两种
(1).逻辑右移用>>>表示,移位时,左边用0填充,右边丢弃
(2).算术右移用>> 表示,移位时,左边用该值的符号位填充,右边丢弃
警告!
对于移位运算符,不要移动负位数,这个是标准未定义的。
3.位操作符
&  按位与
|   按位或
^  按位异或
注意:他们的操作数必须是整数
4.赋值操作符
= 就是它
复合赋值符:
+=、 -=、 *=、 /=、 %=、>>=、<<=、&=、|=、
5.单目操作符
!            逻辑反
-              负值
+             正值
&            取地址
sizeof      操作数的类型长度(以字节为单位)  !!他是操作符,sizeof()并不是函数
~             对一个数的二进制按位取反
--            前置、后置--
++          前置、后置++
*             间接访问操作符(解引用)
(类型)      强制类型转换
6.关系操作符
>、>=、<、<=、!=、==
!!注意在if判断条件中不要只写一个=,和数字比较时最好把数字写在左边,以防出错,例如  if(5 == num)
7.逻辑操作符
&&         逻辑与
||             逻辑或
8.条件操作符
exp1 ? exp2 : exp3    也叫三目操作符
例:
if(a > 5)
    b = 2;

else
    b = 5;

用三目操作符可以写成:
b = a > 5 ? 2 : 5;
9.逗号表达式
exp1,exp2,exp3,...,expN
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果
10.下标引用、函数调用和结构成员
(1). []
操作数:一个数组名 + 一个索引值
例:
int arr[22];
arr[4] = 34;
[] 的两个操作数是 arr 和 4
(2). ()
函数调用操作符,接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
(3).  访问一个结构的成员
.    结构体.成员名
->  结构体指针-> 成员名

操作符的属性:
复杂表达式求值有三个影响因素:
1.操作符的优先级
2.操作符的结合性
3.是否控制求值顺序
两个相邻的操作符先执行哪个?取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: