2.3.4 常见运算符
2.3.4 常见运算符
运算,就是对多个数据进行处理 运算符表示了数据之间的运算关系 当然,像大于小于这些逻辑判断,我们也归类为运算符
1.算术运算符
常用的算术运算符在包括加减乘除(+ - * /)的同时 还包括了%(取模),也就是求余数的运算 比如23%5的结果就是3 因为
%和/经常用于对正整数左某位或右某位数的操作 比如,int a = 123456; 取右一位,a = a % 10; 取左一位 , a = a /100000; 丢弃右一位,a = (int)(a/10); 丢弃左一位,a = a % 100000;
TODO: 解释一下为什么形如 x = x + 1 的代码是能写的,以及它表示什么
除此之外,还有一种运算符,就是自加/自减运算,分别用++和--表示 表示在当前基础上加上或减去1 比如 int i = 1; i++; //现在i等于2
值得注意的是,自加/自减的位置不同,结果也不同 我们以自加为例子
i++最终的效果是让i的值增加1,但是i++这个表达式本身所产生的值是在i自增之前原有的值;++i最终的效果是让i的值增加1,但是++i这个表达式本身所产生的值是在i自增之后变成的新值。
写两个程序演示一下:
#include <stdio.h>
int main(void)
{
int i = 5;
int j = i++;
printf("i = %d, j = %d\n", i, j);
return 0;
}
输出结果是: i = 6, j = 5
而如果改成前缀 ++ 的话:
#include <stdio.h>
int main(void)
{
int i = 5;
int j = ++i;
printf("i = %d, j = %d\n", i, j);
return 0;
}
输出结果就会是: i = 6, j = 6
2.关系运算符
首先是最常见的> <,小于和大于 但是值得注意的是,C语言中的等于是==,而不是一个=,一个=是赋值
而!=是不等于
而大于等于和大于小于则这样表示:>=大于等于 <=小于等于
3.逻辑运算符
逻辑运算符用来表示最基本的逻辑运算 && 与 || 或 ! 非
其中,A && B只有在A和B都是对的时候,A && B才是对的 而A || B只要A和B有一个对,那么A || B就是对的 对于!A,只要A是对的,!A就是错的
在这里,我们用 int 类型的值 1 来表示“对”(True), 0 表示“错”(False)。
TODO: 其他值
也就是说:
| 表达式 | 结果 |
|---|---|
1 && 1 |
1 |
1 && 0 |
0 |
0 && 1 |
0 |
0 && 0 |
0 |
1 \|\| 1 |
1 |
1 \|\| 0 |
1 |
0 \|\| 1 |
1 |
0 \|\| 0 |
0 |
!1 |
0 |
!0 |
1 |
TODO: C99/C23/C++ 布尔类型
需要注意的是,如果我们想表示一个区间,比如1<=a<=5,或者说a∈[1,5] 那么,我们应当这样写: 1 <= a && a <= 5 而不能直接写1<=a<=5
TODO: 说明原因
4.赋值运算符
最基本的就是一个= 比如
除此之外,还有一些整合计算的赋值运算符+= -= *= /= 我们就拿+=举个例子 比如,我像让i等于i+5 那么就可以这样写
这和写 i = i + 5 是一样的。
至于其他的,都同理