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

c语言操作符的总结

2017-12-21 14:25 477 查看
操作符

 

一、操作符的分类

1.     算数操作符

2.     位移操作符

3.     位操作符

4.     赋值操作符

5.     单目操作符

6.     关系操作符

7.     逻辑操作符

8.     条件操作符

9.     逗号操作符

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

二、逐个讲解

1、 算数操作符

    +   -      *      /      %

1)    除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。
2)    对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3)    %操作符的两个操作数必须为整数。返回的是整除之后的余数。
2、位移操作符
>>右位移操作符         <<  左位移操作符
1)    左位移操作符
位移规则:左边抛弃,右边补0
在没有赋值的情况下自身的值不发生变化。
int num= 10;
num<<1;    //num的值没有发生变化还是10
num= num<<1;   //num的值才发生变化,位20
2)    右移操作符
首先右移分两种:
a)    逻辑位移
左边用0填充,右边丢弃
unsignedint num = 0xffffffff//是-1的补码的形式
printf(“%d”,num);   //输出的是-1而不是一个整数,因为%d是按十进制整数的格式输出,
printf(“%u”,num);  //输出的是一个最大的正数,%u表示输出的是无符号的
num= num>>1;  //结果是0x7fffffff

 
b)    算数位移
左边用原来的符号位填充,右边丢弃。
intnum = 0xffffffff;
num= num>>1;//num的值位0xffffffff  -1的补码
3、位操作符
&   //按位与    |    //按位或    ^  //按位异或
它们的操作数必须是证书
4、 赋值操作符

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

5、 单目操作符

!逻辑反操作  -负值   +正值  &取地址  sizeof操作数的类型长度(以字节位单位)  ~对一个二进制数按位取反   --前置、后置 --   ++前置、后置++

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

        (类型)强制类型转换操作符

        sizeof 是一个操作符不是函数 

         int a = 0;    sizeof (a)  和sizeofa都是正确的

         但是sizeof(int)正确  sizeof int 错误    

         前置++a,--a 先计算a++和--后a的值,早使用a

         后置a--,a++   先使用a的值,然后a的值再自增,自减

6、 关系操作符

<   <= >  >=   !=  ==

7、 逻辑操作符

&&      逻辑与      ||逻辑或

区分按位与和逻辑与

1&2-------->0     1&&2-------->1

1|2--------->3      1||2----------->1

a&&b&&c   当a的值为0,则不再判断b和c,也不再计算b和c的值

a||b||c        当a的值为1,则不再判断b和c,也不再计算b和c的值

8、 条件操作符

exp1 ? exp2 : exp3

如果exp1结果为真,表达式的结果为exp2的结果,否则为exp3的结果

a>  b? max=a : max = b;也可以写为 max = a>b? a : b;

9、 逗号表达式

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

 

  

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 操作符