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

C语言的操作符总结

2018-03-30 14:52 411 查看
分类
操作符的分类主要有:
算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
下标引用、函数调用和结构成员
算术操作符
+     -     *     /      %
需要注意的是:
1.除了%操作符之外,其他的几个操作符都可以作用于整数和浮点数。
2.对于/操作符而言,如果两个操作数均为整数,那么执行整数除法。而两个操作数中只要有一个是浮点数,那么执行的就是浮点数除法,结果即为浮点数。
3.%操作符的两个操作符必须均为整数。返回的数值是整除之后的余数。
移位操作符
 <<        >>
”<<“为左移操作符,表示为二进制形式最左边的数抛弃,最右边的数字补上0。
“>>”为右移操作符,右移操作符分为逻辑右移(左边用0填充,右边丢弃)和算术右移(左边符号位不变,右边丢弃)
位操作符
&       |        ^
&表示按位与运算,对两个操作数的二进制形式逐位比较,只有该位上两个数均为1时得结果1,其余均为0。
|表示按位或运算,对两个操作数的二进制形式逐位比较,只有该位上两个数均为0时得结果0,其余均为1。
^表示按位异或运算,对两个操作数的二进制形式逐位比较,若相同得0,不同得1。A,B异或的值,与A异或得B,与B异或得A。
赋值操作符
即“=”,可以将右边的值赋给左边的值。注意最好不要连续赋值,不然不利于理解,拆分开以后更利于后期理解和调试。
复合赋值符
+=       -=       *=      /=     %=      >>=     <<=     &=    |=
复合赋值符是一种更加简洁的写法,与其他运算符同理。
单目操作符
!   -    +    &     sizeof     ~     --      ++      *        (类型)
!表示逻辑反操作。
&表示取地址操作。
~表示对一个数的二进制按位取反。
(类型)用来强制转换变量的类型。
sizeof是用来求变量(类型)所占空间的大小的操作符,不是函数,sizeof内的表达式不参与运算。 ”sizeof(数组名)“表示整个数组的大小,单位为字节。“&数组名”表示整个数组,只有这两种方式可以表示整个数组,其余表达方式均为数组的首元素地址。但”sizeof(数组名)“在函数传参的过程中不表示整个数组的大小,只有四个字节。
”++“和“--”的操作符,如果前置的话就先赋值后使用,如果后置的话就先使用后赋值。
关系操作符
>    >=     <     <=     !=      ==
在判断语句中用“==”不是“=”。
关系操作符

&&       ||
"&&"为逻辑与操作符,必须两个操作数均为真,返回结果才为真,如果第一个操作数为假,那么后面的操作则不执行。
“||”为逻辑与操作,只要有一个操作数为真,则返回结果为真,若第一个操作数为真则后面的操作不执行。
条件操作符
exp1 ? exp2 : exp3
“exp1”为判断语句,如果判断结果为真,则执行“exp2” ,如果判断结果为假,执行“exp3”。
逗号表达式
即为用逗号隔开的多个表达式,从左到右依次执行。整个表达式的结果是最后一个表达式的结果。
下标引用、函数调用和结构成员
“[ ]”即为下标引用操作,包含两个操作数分别为索引值和数组名。
“()”为函数调用符号,第一个操作数是函数名,剩余的操作数是传递给函数的参数。
“.”使用方法为“结构体.成员”,用于访问结构体中的成员。“->”的使用方法为“结构体指针->成员名”
表达式求值
表达式的求值顺序一部分由操作符的优先级和结合性来决定。有些操作数在求值过程中可能需要转化为其他的类型,这之中包含了隐式类型转换和算数转换。 C的整型算数运算总是以缺省整形类型的精度来进行,为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型转换。
如果某个操作符中的操作数属于不同类型,那么除非其中一个数转换为另一个操作数的类型,否则操作无法进行,下面的层次体系称为寻常算数转换。从下向上转换。
long double
double
float
unsigned long int
long int
unsighned int
int如果操作数的类型在上面这个列表中排名较低,那么首先要转换为另一个操作数的类型后再执行计算。
操作符的属性
复杂表达式的求值有三个因素的影响。
1.操作符的优先级。
2.操作符的结合性。
3.是否控制求值顺序。
相邻的操作符哪个限制性取决于他们的优先级,如果优先级相同取决于他们的结合性。
需要注意的是只有逻辑与“&&”,逻辑或“||”,条件操作符“?:”和逗号操作符“,”可以控制求值顺序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: