C——操作符总结帖

在C语言的表达中,操作符有着很重要的作用 
今天来总结一下常见的C语言 操作符

算数操作符

+     -     *     /    %

1、 %两个必须都是整数,返回整除后的余数。除了%操作符之外,其他几个操作符可以作用于整数和浮点数。

2、对于/ 如果两个操作数是整数,作整除取整数位,有浮点数执行的是除法。
3、+ - *类似数学运算。


移位操作符

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


<< 左移操作符

移位规则:
左边抛弃、右边补0

假设存放i=2在8字节中 i的二进制是“0000 0010”,
i<<1;  
i的二进制是“0000 0100”即是向左移1位,左边第一位的0舍去最右边补0.

>> 右移操作符

移位规则:
分两种:
1、逻辑位移
左边补0,右边丢弃
2、算数位移
左边补该值的符号位(如负数符号位是1那么补1,整数符号位是0那么补0),右边丢弃

对于位移运算符,不可移动负数位,这个是标准未定义的。


位操作符

&  |  ^  

不可作用浮点型
& : 
按位与, 如 a=0011
                  b=0101
c=a&b,    c=0001 (按位同1为1 同0为0 相异为0)

| :
按位或, 如 a=0011
                  b=0101
 c=a | b      c=0111 (按位有1为1 同1为1 同0为0)


^:
按位异或,如a=0011
                    b=0101
c=a^b         c=0111(按位相异为1 同0为0 同1为1)

小插曲:用^实现两数交换   

             a=5;

             b=9;
             a=a^b;          
             b=a^b;
             a=a^b;
             a=9;
             b=5; 
 ps: 只能交换整数

赋值操作符  =
复合赋值操作符

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

先运算再赋值

单目操作符
!                逻辑反操作     int i=2;int j=0; 那么!i=0;!j=1;
-                  负值
+                 正值
&                 取地址     int i=2;int* p=&i;  p中放的i的地址
sizeof          sizeof()    操作数的类型长度(字节), sizeof编译时就完成,是类型运算。
~                 对一个数的二进制按位取反
++              前置、后置++, i++  等同i=i+1,先使用i 再自增。++i, 先自增再使用i。

--                前置、后置--,
*                 间接访问操作符(解引用操作符)int a=6;int *p=&a;int b=*p;  *p就是引用地址变量p所指向的a的值
(类型)       int n=6; float c=(float)a;c=6.000000

关系操作符
>  >=   <    <=   !=    ==


!= :判断不相等,不相等返回1,相等返回0。

==:判断相等,相等返回1,不相等返回0。


逻辑操作符

&& 逻辑与
  ||   : 逻辑或

int i=0, a=0, b=2, c=3, d=4;
c=a++&&b++;输出c=0,a=1,b=2
d=++a||++b;输出d=1,a=1,b=2

a&&b a假则结束不运算b,因为a若是假,不论b取何值 a&&b都为0 
a||b a真则结束不运算b,因为若a为真,不论b取何值 a||b都为1

条件操作符

exp1 ? exp2 :exp3
判断表达式1是否成立, 是 则执行表达式2,否 则执行表达式3.

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

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

1、[]
操作数:一个数组名+一个索引值
arr[i]等价于i[arr]因为[]是操作符,两个操作数可交换

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

3、访问一个结构的成员
. 结构体.成员名
->结构体指针->成员名



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值