C语言之操作符总结

操作符分为以下几类:

一. 算术操作符


+        -          *          /          % (取模运算)

其中%(取模运算符)的两个操作数必须是整数。
而 /(除号运算符),若是左右两个操作符都是整型数,不管该结果是什么类型,结果都是个整数,小数点后原有的数会被默认舍去。栗子如下:


#include<stdio.h>
int main()
{
 int a = 3;
 int b = 2;
 float c = 0;
 c = a / b;
 printf("%f\n",c);
} 

打印的结果如下,本来结果应该是1.5,但其实结果是1.000000


若要得到正确的结果,必须使 / 的两个操作数中,有一个为浮点类型。

二.移位操作符


<<  (左移操作符)       >>  (右移操作符)

在这里只需要明白,移位操作符,移动的是该数对应的二进制序列就好。
特别需要注意的是:左移不需要担心符号位的问题,只用在左移之后在最右边补零即可。但是右移还要看该数的正负,
因此右移分为两种移法:

1、算术右移;

2、逻辑移位。算术右移情况指的是:二进制数有正负之分,补位时要注意符号位;逻辑移位情况指的是:不需要考虑符号产生的问题,直接补0即可。

三.位操作符


  &  (按位与)       ^  (按位异或)     |(按位或)

&(按位与)
如果两个位上的数都为1,结果为1;否则结果为0 ;
| (按位或)
如果两个位上的数都是0,结果为0;否则结果为1 ;
^ (按位异或):
如果两个位上的数不同,结果为1;如果两个位上的数相同,结果为0。

注意 : 他们的操作数必须为整数。

四.单目操作符


!                 逻辑反操作符
-                  负号
+                  正号
&                  取地址运算符
sizeof             操作数的类型长度(以字节为单位0)
~                  对一个数的二进制进行按位取反
++                 前置先加一,再代入计算(后置相反)
--                 前置先减一,再代入计算(后置相反)
*                  解引用操作符(间接访问操作符)
(类型)             强制类型转换

五.关系操作符


>       <        ==      >=      <=     !=     

要注意区别:
判断相等的运算符 == 与赋值运算符 =。

六.逻辑操作符


&& (逻辑与)       ||  (逻辑或)

七.条件操作符


excep1?excep2:excep3

条件操作符接受三个操作数,并且会控制子表达式的求值顺序。 首先算exp1,若它的值为非0值,即为真,那么整个表达式的值为exp2,对exp3不会求值; 但是如果exp1的值为假,那么不对exp2 求值,整个表达式的值为exp3。

八.逗号表达式


excep1,excep2,excep3,excep4,...excep

这些表达式自左向右逐个进行求值,整个逗号表达式的值就是最后一个表达式的值。

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


[]   (下标引用操作符:一个数组名 + 一个索引值)      
()   (函数调用操作符:接受一个或者多个操作数,第一个操作数是函数名,剩余的操作数就是传递给函数的参数)   
.    (访问一个结构的成员:结构体. 成员名)  
->   (结构体指针->成员名)

猜你喜欢

转载自blog.csdn.net/weixin_43737259/article/details/89278684