C语言操做符

C语言的操做符分为:算术操做符、移位操做符、位操做符、赋值、单目操做符、关系操做符、逻辑操做符、条件操做符、逗号操做符、下标引用、函数调用和结构成员等,在这简单介绍下这几种操做符。数组

一、算术操做符:+、- 、* 、/、%函数

其中‘%’只接受两个整型操做数,其返回的值是余数而不是商。除了‘%’,其余的操做符既适用于浮点型又适用于整数类型。当‘/’操做符的两个操做数都是整数时,他执行整数运算,在其余状况下执行浮点数除法。指针

二、移位操做符:简单的把一个值的位向左或向右移动。table

  • 在左移位中,最左边的几位被丢弃,右边多出的几个空位由0补齐。左移位操做符为:<<
1 0 0 1 0 1 1 1

 

向左移3位  逻辑移位变量

1 0 1 1 1 0 0 0

 

向左移3位 算术移位引用

1 0 1 1 1 0 0 0

 

 

  • 右操做符存在一个左操做符未曾面临的问题。从左边移入新位时,有两种选择方案:逻辑移位(左边移入新位全用0补充)、算术移位(左边移入的位由原先该值的符号位决定,符号位位1则移入的位均为1,符号位为0则移入的位均为0)。右移位操做符为:>>。
1 1 0 1 0 0 1 1

 

 向右移3位  逻辑移位二进制

0 0 0 1 1 0 1 0

 

向右移3位 算术移位float

1 1 1 1 1 0 1 0

 

 

移位操做符的左操做数的值将移动由右操做数指定的位数,两个操做数必须为整数。如:6<<4,6表示的二进制数向左移动4位。tab

 

 

0 1 1 0 1 0 1 1

 

向右移3位  逻辑移位语言

0 0 0 0 1 1 0 1

 

向右移3位 算术移位

0 0 0 0 1 1 0 1

 

 

 

三、位操做符:对他们的操做数的各位执行AND、OR、XOR等逻辑操做

  AND(&):两个位数都是1,结果为1,不然为0;

  OR(|):两个位都是0,结果为0,不然为1;

  XOR(^):两个位上的数不一样结果为1,不然为0。

他们要求的操做数为整数类型。

如:

 

&(与操做符) 0 1
0 0 0
1 0 1
|(或操做符) 0 1
0 0 1
1 1 1
^(异操做符) 0 1
0 0 1
1 1 0

  

 

 

 

四、赋值:把右操做数的值存储于左操数;赋值操做符的求值顺序是从右到左。

如:a=b=c+2 等同于 a=(b=c+2)

复合赋值符:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=

上面的复合操做符运算相似于’+=‘操做符。如a+=2等同于a=a+2,a<<=2等同于a=a<<2;

五、单目操做符:只接受一个操做数。它们是:

!:逻辑反操做,操做数为真,结果为0,操做数为假,结果为1;如 :!7=0。

~:对整型类的操做数进行求补操做,操做数中原先为1的为变为0;原先为0的变为。

&:产生它操做数的地址。如  int a,*b;  b=&a;  &操做符取a的地址赋值给指针变量b。

* :间接访问操做符,与指针一块儿使用,用于访问指针所指向得值。如上面一行的代码,表达式b的值是变量a的地址,但表达式*b的值则是变量a得值

sizeof:判断它操做数的类型长度。

(类型):强制类型转换符,用于显示的把一种类型转换为另一种类型。如:

 int a;

(float)a;

把整型变量a转换为浮点型。

+、-:产生操做数的正负值

++、--:操做数的值被增长或减小1。

六、关系操做符:>, >=, <, <=, !=, ==

关系操做符的值是整数,而不是布尔值,他能够赋值给整型变量,一般用于if或while语句中,做为测值表达式

七、逻辑操做符:&&,||

&&操做符的优先级较低,&&操做符老是首先进行左操做数求值,若是值为真,而后紧接着对右操做数进行求值。若是左操做数求值为假,就再也不进行右操做数。||操做符也是先求左操做数,若是为真就不进行右操做符求值。

八、条件操做符:条件操做符接受三个参数;用法以下:

表达式1?表达式2:表达式3

首先计算表达式1的值,为真整个表达式的值为表达式2的值,不计算表达式3的值;为假则为表达式3的值,不计算表达式2的值

九、逗号操做符:用于将两个或多个表达式分隔开来,这些表达式自左向右求值,整个逗号的表达式的值为最后那个表达式的值。用法:

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

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

下标引用:经常使用于数组、指针

函数操做符接受一个或多个操做数,第一个操做数是你但愿调用的函数名,剩余的操做数是传递给函数的参数

结构成员: . 和 -> 用于访问一个结构的成员。若是是个结构变量,那么s.a就是访问结构s中名叫a的成员。当遇到一个指向结构的指针,访问他的成员须要用 ->

相关文章
相关标签/搜索