C语言操作符

来源:互联网 发布:批处理执行python 编辑:程序博客网 时间:2024/06/05 04:38

指令系统的每一条指令都有一个操作符,它表示该指令应进行什么性质的操作。

1. 算数操作符

+    加法操作符

-    减法操作符

*    乘法操作符

/    整除操作符             5/2=2

%    求余操作符             5%2=1

注:

i.      除求余操作符(%)外,其他的几个操作符都可以用于整数和浮点数。

ii.    对于整除操作符(/),若两个操作符都为整数,则执行整数除法;若其中有一个为浮点数,则执行浮点数除法。

iii.   求余操作符(%)的两个操作符必须为整数,返回的是整除之后的余数。

2. 移位操作符

<<    左移操作符

>>    右移操作符

移位规则:

(1)<<    左移操作符           左边舍弃、右边补0

int n = 10;  //10的二进制为      00001010n << 1; //10左移一位后变为    0  00010100   (后面补0,前面舍去)

注:实际上n在未赋值的情况下,自身的值不变

(2)  >>    右移操作符

1)逻辑移位

左边补0、右边舍弃

int n = -1;       // -1的二进制为    11111111n >> 1;           //                 01111111   1                  //           (左边补0,右边舍去)

2)算数移位

左边补原数符号位、右边舍弃

int n = -1;       // -1的二进制为    11111111n >> 1;           //                 11111111   1                  //             (左边补符号位,右边舍去)

3. 位操作符

&   按位与       同真为真              3^      00000011

|    按位或      一真为真              5      00000101

^    按位异或     相同为0,相异为1    =       00000110

注:按“位”中的位指二进制的位

4. 赋值操作符

+=    -=    *=    /=   %=          a=a+1等价于a+=1

>>=   <<=    &=    |=    ^=

5. 单目操作符

!         逻辑反操作

-          负值

+         正值

&        取地址

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

注:

i.    

int a = 10;int c = 4;printf("%d\n", sizeof(a));                  //其中a的括号可以省printf("%d\n", sizeof(int));                //其中int的括号不能省printf("%d\n", sizeof(a = c + 1));          //其中sizeof内部的表达式不参与运算                                            //其中后三句等价

ii.    sizeof内部放数组名,则数组名表示整个数组,单位是字节

int arr[10];printf("%d\n", sizeof(arr));

iii.   除此之外都是表示数组首元素

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

printf("%d\n", ~0);         //其中~0表示1

--        前置、后置—

int a = 10;int x = --a;                //前置—,先—后使用int y = a--;                //后置--,先使用后--printf("%d\n", x, y);       //输出x = 9,y = 10

++       前置、后置++

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

(类型)    强制类型转换

6. 关系操作符

>、>=

<、<=

!=   用于测试“不相等”

==   用于测试“相等”

7. 逻辑操作符

&&    逻辑与

||   逻辑或

注:

i.      逻辑与(&&)与按位与(&)  1&2=0

1&&2=1

逻辑或(||)与按位或(|)   1|2=3

1||2=1

ii.    逻辑与(&&)逻辑或(||)都具有短路特性,即当前一个逻辑表达式可以决定整个表达式的计算结果时,后一个逻辑表达式根本就不会计算

8. 条件操作符

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

注:

i.      若表达式1为真则执行表达式2

ii.    若表达式1为假则执行表达式3

9. 逗号表达式

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

注:

i.      逗号表达式,从左向右依次执行。

ii.    整个表达式的结果是最后一个表达式的结果。

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

[]   下标引用操作符

()    函数调用操作符

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

访问一个结构的成员

. 结构体.成员名

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

 

原创粉丝点击