前言
室友一把王者荣耀的时间,你可以重新认识一下C语言操作符,或者彻底搞懂C语言操作符!
一、C语言操作符的分类
1.算术操作符
2.移位操作符
3.位操作符
4.赋值操作符
5.单目操作符
6. 关系操作符
7.逻辑操作符
8.条件操作符
9.逗号表达式
10.下标引用、函数调用和结构成员
二、各操作符的作用
1. 算术操作符
+ - * / %
1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。
2. 移位操作符
<< 左移操作符
>> 右移操作符
!但是进行移位的数必须为整数
2. 1左移操作符
移位规则:
左边抛弃,右边添个0
2. 2右移操作符
移位规则:
首先右移运算分两种:
1.逻辑移位 左边用0填充,右边丢弃
2. 算术移位 左边用原该值的符号位填充,右边丢弃
但是对于移位运算符,不要移动负数位,这个是标准未定义的。
3. 位操作符
位操作符有:
& 按位与
| 按位或
^ 按位异或
注:他们的操作数必须是整数。
4. 赋值操作符
赋值操作符是一个很好的操作符,也就是你可以对自己之前不满意的值重新赋值。
int high = 170;//身高
high = 180;//不满意就更改
int money = 100;//零花钱
money = 10000;//不满意就更改
复合赋值符
复合赋值符都可以写成复合的效果:
例如:
int a = 10; a = a + 10; a += 10;//其他复合运算符也可以同样这样写,可以更简洁
5. 单目操作符
#include <stdio.h>
int main()
{
int a = -10;
int *p = NULL;
printf("%d\n", !2);
printf("%d\n", !0);
a = -a;
p = &a;
printf("%d\n", sizeof(a));
printf("%d\n", sizeof(int));
return 0;
}
关于sizeof其实我相信大家之前都已经见过了,可以求变量(类型)所占空间的大小。
6. 关系操作符
这些关系运算符比较简单,没什么可讲的,但是我们要注意一些运算符使用时候的小错误。
在编程的过程中== 和=不小心写错,导致的错误。
7. 逻辑操作符
逻辑操作符有哪些:
&& 逻辑与
|| 逻辑或
! 逻辑非
8. 条件操作符
exp1 ? exp2 : exp3;
条件1成立就输出条件2,不成立就输出条件3
9. 逗号表达式
逗号表达式(,,,),以逗号隔开的表达式
是从左向右依次计算的
整个表达式的结果是最后一个表达式的结果
int a = 1;
int b = 2;
int c = ( a=b+10, a, b=a+1);//逗号表达式
c是多少?欢迎在评论区讨论!
10.下标引用、函数调用和结构成员
10.1下标引用
符号:[ ]
下标引用共有两个操作数(数组名和索引值)
int a[5] = {0}; a[3] = 1; //[ ]:下标引用操作符,其两个操作数为arr和3
10.2函数调用
符号:()
()函数调用操作符,有一个或多个操作数(函数名和参数)
10.3结构成员
符号:->
符号说明:
-> 结构体对象.成员名
-> -> 结构体指针->成员名