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

C语言操作符总结

2018-03-31 11:55 525 查看
 一.分类

操作符的分类主要有:

算术操作符

移位操作符

位操作符

赋值操作符

单目操作符

关系操作符

逻辑操作符

条件操作符

逗号表达式

下标引用、函数调用和结构成员
二.(1)算术操作符

+ 加    -减   * 乘    / 除     %取余
注意:

①除了%操作符之外,其他的几个操作符都可以作用于整数和浮点数。

②对于/操作符而言,如果两个操作数均为整数,那么执行整数除法。而两个操作数中只要有一个是浮点数,那么执行的就是浮点数除法,结果即为浮点数。

③%操作符的两个操作符必须均为整数。返回的数值是整除之后的余数。
(2)移位操作符

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

<<表示为二进制形式最左边的数抛弃,最右边的数字补上0。

>>右移操作符分为逻辑右移(左边用0填充,右边丢弃)和算术右移(左边符号位不变,右边丢弃)

(3)位操作符

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

&是对两个操作数的二进制形式逐位比较,只有该位上两个数均为1时得结果1,其余均为0。

|是对两个操作数的二进制形式逐位比较,只有该位上两个数均为0时得结果0,其余均为1。

^是对两个操作数的二进制形式逐位比较,若相同得0,不同得1。A,B异或的值,与A异或得B,与B异或得A。

(4)赋值操作符=

它可以将右边的值赋给左边的值。注意最好不要连续赋值,分开写有利于理解和后期程序调试。

(4)复合赋值符

+=       -=       *=      /=     %=      >>=     <<=     &=    |=

复合赋值符是一种更加简洁的写法,与其他运算符同理。
比如说a+=b就是我们平时所写的
a=a+b   剩下的操作符意思类似。

(5)单目操作符
!逻辑反操作    

-负    

+ 正   

& 取地址操作  

~表示对一个数的二进制按位取反
 
--    自减 ,如果前置的话就先赋值后使用,如果后置的话就先使用后赋值

 ++  自增,如果前置的话就先赋值后使用,如果后置的话就先使用后赋值

    *      间接访问
 
 (类型)   用来强制转换变量的类型

sizeof 是用来求变量(类型)所占空间的大小的操作符,不是函数,sizeof内的表达式不参与运算。
注意:
 ”sizeof(数组名)“表示整个数组的大小,单位为字节。“&数组名”表示整个数组,只有这两种方式可以表示整个数组,其余表达方式均为数组的首元素地址。但”sizeof(数组名)“在函数传参的过程中不表示整个数组的大小,只有四个字节。

(6)关系操作符

> 大于      >=  大于等于      <  小于 

  <=  小于等于      ==等于    != 不等于

&&逻辑与       ||逻辑或

"&&",必须两个操作数均为真,返回结果才为真,如果第一个操作数为假,那么后面的操作则不执行。

“||”,只要有一个操作数为真,则返回结果为真,若第一个操作数为真则后面的操作不执行。

(7)条件操作符

exp1 ? exp2 : exp3

“exp1”为判断语句,如果判断结果为真,则执行“exp2” ,如果判断结果为假,执行“exp3”。

(8)逗号表达式exp1,exp2,exp3,...expN

用逗号隔开的多个表达式,从左到右依次执行。整个表达式的结果是最后一个表达式的结果。

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

“[ ]”即为下标引用操作,包含两个操作数分别为索引值和数组名。

“()”为函数调用符号,第一个操作数是函数名,剩余的操作数是传递给函数的参数。

“.”使用方法为“结构体.成员”,用于访问结构体中的成员。“->”的使用方法为“结构体指针->成员名”三. 表达式求值
     表达式求值顺序一部分是由操作符优先级和结合性决定。但有些表达式的操作数在求值过程中可能需要转换成其他类型。
四.隐式类型转换
      C的整型算数计算总是至少以缺省整形类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换成普通整型,这种转换称为“整型提升”。
五.算术转换
     如果某个操作数属于不同类型,那么除非其中一个操作数转换成另外一个操作数的类型,否则操作无法执行。
六.操作符属性   复杂表达式求值有三个影响的因素:
1.操作符的优先级
2.操作符的结合性
3.是否控制求值顺序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: