C语言运算符号

C语言运算符号

分类:
1、算术运算符
2、关系运算符
3、逻辑运算符
4、位运算符
5、赋值运算符
6、杂项运算符

一、算术运算符

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(–)共七种。

二、关系运算符

用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。

三、逻辑运算符

用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
与(&&): 如果两个操作数都非零,则条件为真。

或(||): 如果两个操作数中有任意一个非零,则条件为真。

非(!): 如果条件为真则逻辑非运算符将使其为假。

四、位操作运算符

参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

1、与(&): 0&0=0; 0&1=0; 1&0=0; 1&1=1;只有都为1结果才为1

2、或(|): 0|0=0; 0|1=1; 1|0=1; 1|1=1;只有都为0.则为0

3、非(~): 取反运算符~1=-2; ~0=-1; 60进行下面的计算将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式

4、异或(^): 只有当两边不同时才为1。

5、左移(<<): 二进制左移运算符。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
60<< 2 将得到 240,即为 1111 0000
注意在此时是转换成二进制才进行运算。

6、右移(>>): 二进制右移运算符。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃
60>> 2 将得到 15,即为 0000 1111~
左右移方便的计算方法
在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
右移一位相当于除2,右移n位相当于除以2的n次方。
12>>1 结果:6    12/2^1
12>>2 结果:3    12/2^2
左移一位相当于乘2,左移n位相当于乘以2的n次方。
12<<1 结果 :24 ` 12x2^1
12<<2 结果 :48    12x2^2

五、赋值运算符

用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
+=: 加且赋值运算符 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 <<= 2 等同于 C = C << 2

&=: 按位与且赋值运算符 C &= 2 等同于 C = C & 2

^=: 按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2

|=: 按位或且赋值运算符 C |= 2 等同于 C = C | 2

六、条件运算符

这是一个三目运算符,用于条件求值( ? :)。
//三目运算符
<表达式1> ? <表达式2> : <表达式3>;
返回值:先求表达式 1 的值,如果为真,则执行表达式 2,并返回表达式 2 的结果;如果表达式 1 的值为假,则执行表达式 3,并返回表达式 3 的结果。
如果条件是真的,则执行 ? 和 : 之间的语句;否则,执行 : 之后的部分。

(x < 0) ? (y = 10) : (Z = 20);

七、其他的运算

指针运算符 :用于取内容(*)和取地址(&)二种运算。
指向:常用于结构体指针变量访问成员。(->)
运算符“->”,通过结构体指针变量直接获得结构体变量的成员变量,一般形式如下:
结构体指针变量-> 成员变量
使用操作符"->"来访问结构体成员,箭头操作符对左操作数执行间接访问来获取指针所指向的结构,然后根据右操作数来访问一个成员,p->a。
结构体的成员的取用区别:
定义的结构体如果是指针,访问成员时就用->
如果定义的是结构体变量,访问成员时就用.
->指针运算符。
1、如果结构体中的成员均为一般变量(包括结构体变量),则使用“.”,如果成员变量为指针(不管指向什么,包括结构体),则使用“->”。
2、如果定义了结构体数组指针,则可分别使用“.”和“->”,区别在于指针带下标时,以是数组形式访问,此时用“.”,如果不带下标(或使用偏移),此时用“->”。

运算符的优先级

初、单、算、关、逻、条、赋
初等运算符>单目运算符>算术运算符>关系运算符>逻辑运算符>条件运算符>赋值运算符
初等运算符:()、[ ]、->、. (后两者均为结构体成员运算符);
单目运算符:!、~、++、–、sizeof、&、
算术运算符
、/、+、-、<<、>>;
关系运算符:<、<=、>、>=、==、!=、&、^、|;(此栏排列仍有优先级顺序哦);
逻辑运算符:&&、||;
条件运算符:?:(即三目运算符);
赋值运算符:=、+=、-=、*=、/=、%=、>>=、<<=;等

  • 43
    点赞
  • 311
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值