C语言中的操作符和表达式

1.算数操作符

操作符

作用

+

两个数相加,1+1=2

-

两个数相减,1-2=-1

*

两个数相乘,1*2=2

/

两个数相除,5/1=5

%

取模,即结果为两数相除的余数,3%6=0

 注:

<1>%操作符两个操作数必须为整数,其他的操作符可以用作整数和浮点数。

<2>对于/操作符来说,两个操作数都为整数执行整数除法,只要有浮点数就执行浮点数除法。 

2.移位操作符与位操作符

操作符

描述

>> 

右移操作符,左操作数的二进制右移右操作数指定的位数。

<< 

左移操作符,左操作数的二进制左移右操作数指定的位数

&

比特位按位与,1&1=1,1&0=0,0&1=0,0&0=0

|

比特位按位或,1|1=1,1|0=1,0|1=1,0|0=0

^

比特为按位异或,1^1=0,1^0=1,0^1=1,0^0=1

注:

<1>移位操作符与位操作符都是在对比特位进行操作,左移操作符移位,左边丢弃,右边补0。

<2>右移操作符移位分为逻辑移位和算数移位,逻辑移位左边补0,右边丢弃,算数移位左边补符号位,右边丢弃。

        对于移位操作符,不要移动负号位!

<3>位操作符的两个操作数必须为整数。左移一位相当于十进制乘以2,右移一位相当于十进制除以2

3.赋值操作符

操作符

描述

=

简单的赋值,把右操作数赋值给左操作数

+=

加且赋值运算符,a+=3即为a=a+3

-=

减且赋值运算符,a-=3即为a=a-3

*=

乘且赋值运算符,a*=3即为a=a*3

/=

除且赋值运算符,a/=3即为a=a/3

%=

模且赋值运算符,a%3即为a=a%3

<<=

左移且赋值运算符,a<<=3即为a=a<<3

>>=

右移且赋值运算符,a>>=3即为a=a>>3

&=

按位与且赋值运算符,a&=3即为a=a&3

|=

按位或且赋值运算符,a|=3即为a=a|3

^=

按位异或且赋值运算符,a^=3即为a=a^3

4.单目操作符

操作符

描述

逻辑反操作

-

负值

+

正值

*

间接访问操作符(解引用操作符)

~

对一个数的二进制按位取反

--

前置、后置--

++

前置、后置++

&

取地址

(类型)

强制类型转换

Sizeof

操作符的类型长度(以字节为单位)

注:

<1>前置++,--

       若a=3,x=++a,先对a进行自加,再使用a,表达式x的值为4,x=--a,先对a进行自减,再使用a,x的值为2

<2>后置++,--

      若a=3,x=a++,先使用a,再对a进行自加自减操作

<3>int arr1[5] = {0};

      char arr2[5] = {0};

使用sizeof求字符串长度,sizeof(arr1) = 20,sizeof(arr2) = 5,

sizeof求操作符长度是以字节为单位的

5.关系操作符和逻辑操作符

操作符

描述

左操作数大于右操作数,符合则为真

>=

左操作数大于等于右操作数,符合则为真

左操作数小于右操作数,符合则为真

<=

左操作数小于等于右操作数,符合则为真

==

左操作数等于右操作数,符合则为真

!=

左操作数不等于右操作数,符合则为真

&&

逻辑与运算,两个操作数都为真则表达式才为真

||

逻辑或运算,两个操作数都为假则表达式才为假

逻辑非,转换逻辑状态,把真转为假

注:

<1>位操作符与逻辑操作符的区别,位操作符是比特位之间进行逻辑判断,逻辑操作符是表达式进行逻辑判断

6.条件操作符

 条件?表达式1:表达式2

若条件满足,则执行表达式1,否则执行表达式2

7.逗号表达式

表达式1,表达式2,......,表达式n,

表达式从左往右依次执行,整个表达式的结果是最后一个表达式的结果。



猜你喜欢

转载自blog.csdn.net/yikaozhudapao/article/details/80085846
今日推荐