C语言基础-C语言操作符总结

一,操作符分类

算数操作符:+ - * / %
%的两个操作数都是整数
% 和 / 的除数都不能为0

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

左移操作符:左边抛弃,右边补0
右移操作符:

  1. 逻辑移位:左边用0填充,右边抛弃(无符号数字)
  2. 算数移位:左边用本值得符号位填充,右边抛弃(有符号数)
  3. 对于移位运算符,不要移动负数位,这个标准未定义。

位操作符: & 按位与 | 按位或 ^ 按位异或
& :有1为1
| :有0为0
^ :相异为1,相同为0

对于按位异或操作符有以下几点性质:

  1. 异或运算符合交换律
  2. 任何数与它本身异或都是0
  3. 任何数和0异或都是它本身

赋值操作符:=
复合赋值符:+= -= *= = %= >>= <<= &= |= ^=

C语言允许连续赋值:

int a=10;
int x=0;
int y=20;
a=x=y+1;//连续赋值,编译能通过

要改变一个变量的内容就要通过赋值语句

int a=10;
a>>1;//未赋值,没有改变a的内容
a>>=1;//通过赋值改变了a的内容

单目操作符

! 逻辑反操作符
取反结果为真(1),取反结果为假(0)
+ 正值
- 负值
& 取地址
sizeof 操作数类型长度(以字节为单位)
1, sizeof操作符计算的是变量(类型)所占空间的字节个数,sizeof(a+b)里面的表达式不会参与运算,若a,b为int型,则输出结果为4。
2, 数组传参是要发生降维,会降维为一个指向其内部元素类型的指针,次数用sieof(数组名)是无法算出数组大小的,只能算出一个指针的大小(4字节)
~ 对一个数的二进制按位整体取反
– 前置,后置- -
++ 前置,后置++

** * 间接访问操作符**
(类型) 强制类型转换

扫描二维码关注公众号,回复: 11624633 查看本文章

关系操作符

大于
< 小于
= 大于等于
<= 小于等于
!= 不等于
== 等于

逻辑操作符

&& 逻辑与
一假则假:1&&0—0
|| 逻辑或
一真则真:1||0----1

条件操作符(三目运算符)
exp1?exp2:exp3

逗号操作
exp1,exp2,….exp
从左往右依次执行,整个表达式结果是最后一个表达式的结果

Int a=0;
Int b=2;
Int c=(a>b,a=b+10,b=a+1);//c=13

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

[ ]下标引用操作符
操作数为一个数组名加上一个索引值arr[9]=10;
( )函数调用操作符
接受一个或者多个操作数,函数名和传递的参数,text(n)

. 访问一个结构的成员

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

猜你喜欢

转载自blog.csdn.net/weixin_44930562/article/details/90490221