C语言操作符总结

来源:互联网 发布:子域名 需要备案吗 编辑:程序博客网 时间:2024/04/27 21:29
操作符分类:

算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式

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

1、算数操作符

     +、-、*、/、%

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

%操作符的两个操作数必须为整数。返回的是整除之后的余数。

2、移位操作符:移位操作符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。

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

左移操作符移位规则:左边抛弃、右边补0         (左移1位所得的结果乘2)

右移操作符移位规则:1.逻辑右移:右边丢弃、左边补0        2.算术右移:右边丢弃、左边补符号位(正数补0、负数补1)

警告:对于位移运算符,不要移动负数位,这个标准是未定义的

3、位操作符:

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

例: A = 6,B = 10;

A的二进制位为       00000000 00000000 00000000 00000110

B的二进制位为       00000000 00000000 00000000 00001010

A&B          =           00000000 00000000 00000000 00000010     (同真为真、有假为假)    

A丨B         =            00000000 00000000 00000000 00001110     (有真为真)

A^B          =            00000000 00000000 00000000 00001100      (相同为0、相异为1)

注:它们的操作数必须为整数

4、赋值操作符:   

赋值操作符是一个很棒的操作符,他可以让你得到一个你之前不满意的值。也就是你可以给自己重新赋值。

例:int weight = 120;//体重

        weight = 89;//不满意就赋值

        double salary = 10000.0;

        salary = 20000.0;//使用赋值操作符赋值。

5、复合操作符:

+=  加且赋值运算符                          C+=A相当于C=C+A

-=  减且赋值运算符                          C-=A相当于C=C-A

*=  乘且赋值运算符                          C*=A相当于C=C*A

/=  除且赋值运算符                          C/=A相当于C=C/A

%=  求模且赋值运算符                         C%=A相当于C=C%A

<<=  左移且赋值运算符                        C<<=1相当于C=C<<1

>>=  右移且赋值运算符                        C>>=1相当于C=C>>1

&=  按位与且赋值运算符                       C&=1相当于C=C&1

^=  按位异或且赋值运算符                      C^=A相当于C=C^1

|=  按位或且赋值运算符                       C|=A相当于C=C|1

6、单目操作符:

!      逻辑反操作

-       负值

+       正值

&       取地址

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

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

--      前置、后置--

++       前置、后置++

*                  间接访问操作符

(类型)           强制类型转换

7、关系操作符:

 >    >=   <   <=   !=    ==

!=         用于测试“不相等”

==        用于测试“相等”

8、逻辑操作符:

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

例:#include<stdio.h> 

int main()

   int i = 0,a=0,b=2,c =3,d=4; 

   i = a++&&++b&&d++; 

   //i = a++||++b||d++; 

   printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);

   return 0;

}

输出的结果为  a = 1, b = 2, c = 3, d = 4. 

进行逻辑与运算时,左操作数为假时,则右操作数不需要计算

进行逻辑或运算时,左操作数为真时,则右操作数不需要计算

9、条件操作符(又称三目操作符):

   exp1 ? exp2 : exp3

例: a = (b>0)? b: -b;

  当b>0时,a=b;当b不大于0时,a=-b;其实上面的意思就是把b的绝对值赋值给a。

10、逗号表达式:

exp1, exp2, exp3, .........expN

逗号表达式,就是用逗号隔开的多个表达式。

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

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

(1). [ ] 

      操作数:一个数组名+一个索引值

(2).()

函数调用操作符:接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

(3).访问一个结构的成员

. 结构体. 成员名

->结构体指针->成员名