C语言的操作符总结

分类

操作符的分类主要有:

算术操作符

移位操作符

位操作符

赋值操作符

单目操作符

关系操作符

逻辑操作符

条件操作符

逗号表达式

下标引用、函数调用和结构成员

算术操作符

+     -     *     /      %

需要注意的是:

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.是否控制求值顺序。

相邻的操作符哪个限制性取决于他们的优先级,如果优先级相同取决于他们的结合性。

需要注意的是只有逻辑与“&&”,逻辑或“||”,条件操作符“?:”和逗号操作符“,”可以控制求值顺序。

 

猜你喜欢

转载自blog.csdn.net/higher_and/article/details/79755997