c语言操作符的自我总结hhhhhhhhh

c语言中,操作符有很多种,我自己试着总结一下。
首先是分类:
1.算术操作符
2.移位操作符
3.位操作符
4.赋值操作符
5.单目操作符
解引用操作符:
(类型)强制转换
6.关系操作符
7.逻辑操作符
8.条件操作符:
9.逗号表达式:
10.下表引用,函数调用和结构成员
接下来依次介绍这些操作符
1.算术操作符
这个包括 + - * / %
这里需要注意的是/和%的区别,%是取余的意思,如a%b,得到a的余数
加减法和数学中的一样 , 其中乘除法对于整数的结果是整数,对于浮点数的结果是浮点数,但要注意结果打印的格式和精度缺失。
2.移位操作符
左移<<
右移>>
左移操作符移位规则:在32个比特位中补码左边越位抛弃,右边不足补零。
右移操作符移位规则:
首先右移运算分为两种:
1.逻辑移位(基本不用此规则):在32个比特位中补码右边越位抛弃,左边不足补零。
2.算数移位(基本采用此规则):在32个比特位中补码右边越位抛弃,左边不足用原符号补上。
左移 相当于乘法 如下
11 0000 1011
11<<1 0001 0110 22 112^1
11<<2 0010 1100 44 11
2^2
右移 相当于除法 如下
11 0000 1011
11>>1 0000 0101 5 11/2^1
11>>2 0000 0010 2 11/2^2
3.位操作符
位操作符有:
& 按位与
| 按位或
^ 按位异或
注:他们的操作数必须是整数。
a & b的规则为:两数补码同位比较,都为1取1,其余都取零,即a&b得到 00000100

a | b的规则为:两数补码同位比较,有1就取1,都为零才取零,即a | b得到 00010111

a ^ b的规则为:两数补码同位比较,相同取零,不同取1,即a ^ b得到 00010011
4.赋值操作符 =
赋值操作符是一个很棒的操作符,他可以让你得到一个你之前不满意的值
复合赋值:+= -= *= /= %= >>= <<= &= |= ^=
5.单目操作符
在这里插入图片描述
!: 对非0的数取反为0,对0取反为1.
& : 若arr是数组名,&arr表示整个数组,若swap是函数名则&swap没有语法错误。int a =1; &a得到的是a的地址
~对一个数二进制取反 10001 01110
前置–++和后置–++的区别 前置先加减再使用 后置先使用再加减
解引用 []自带解引用
强制转换 可能会丢失数据 类型精度不一致
6.关系操作符

7.逻辑操作符
&& 逻辑与
|| 逻辑或
对于&&两边只要有0就停止运算,||两边有真就为真
8.条件操作符
exp1 ? exp2 : exp3
int max = 0;
int a = 5;
int b = 4;
max = a > b ? a:b;//若a>b为真,表达式的值为a,否则为b
9.逗号表达式
逗号表达式,就是用逗号隔开的多个表达式。逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达 式的结果。
10.下表引用,函数调用和结构成员
1.

[] //下表引用:
int arr[10];
arr[9] = 10;//实现下表引用操作符
若有arr[4] = 5和4[arr] = 5;两表达式效果相同,编译不会出错

() //函数调用操作符
有两个操作数,分别为函数名和函数调用的参数
如:test(void) test2(a)

3.访问一个结构的成员

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值