一、算术运算符
C语言中的算术运算符包括+、-、*、/、%。
运算符 | 描述 |
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取余 |
代码示例:
#include <stdio.h>
int main()
{
int a = 4;
int b = 3;
printf("a=%d,b=%d\n", a, b);
printf("a+b=%d\n", a + b);
printf("a-b=%d\n", a - b);
printf("a*b=%d\n", a * b);
printf("a/b=%d\n", a / b);
printf("a%%b=%d\n", a % b);
return 0;
}
执行程序:
注意事项:
1.除法:
- 两整数相除,结果整数(舍小数部分)
- 两浮点数相除,结果 double 浮点数
- 整数和实数相除,自动类型转换为实型
- 不允许 除 0(与数学一样)
2.取余:
- 运算数必须是整型
- 对负数取余,结果为余数的绝对值
- 不允许 除 0(与数学一样)
二、比较运算符
比较运算符包括>、>=、<、<=、==、!=。
运算符 | 描述 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
== | 相等 |
!= | 不等于 |
代码示例:
#include <stdio.h>
int main()
{
int a = 4;
int b = 3;
printf("a=%d,b=%d\n", a, b);
// 结果为1表示成立 否则表示不成立
printf("a>b=%d\n", a > b);
printf("a>=b=%d\n", a >= b);
printf("a<b=%d\n", a < b);
printf("a<=b=%d\n", a <= b);
printf("a==b=%d\n", a == b);
printf("a!=b=%d\n", a != b);
return 0;
}
执行程序:
三、赋值运算符
赋值运算符包括=、+=、-=、*=、/=、%=。
运算符 | 描述 |
= | 等于 |
+= | 加等于 |
-= | 减等于 |
*= | 乘等于 |
/= | 除等于 |
%= | 模等于 |
代码示例:
#include <stdio.h>
int main()
{
// 赋值运算符
int a = 4;
int b = 3;
printf("a=%d,b=%d\n", a, b);
// 相当于a=a+b
printf("a+=b=%d\n", a += b);
// a=a-b
printf("a-=b=%d\n", a -= b);
// a=a*b
printf("a*=b=%d\n", a *= b);
// a=a/b
printf("a/=b=%d\n", a /= b);
// a=a%b
printf("a%%=b=%d\n", a %= b);
return 0;
}
执行程序:
注意事项:
- 先运算,后赋值。方向,自右向左
- += 可实现累加,将别人的数据累加给自己。
- 所有赋值运算符,都会修改变量原始值。
四、自增自减运算符
自增自减运算符包括++、--。
作用:
- 自增 ++, 放在变量前面或后面,对变量自身值+1。
- 自减 --, 放在变量前面或后面,对变量自身值-1。
注意:运算符放在变量前面就先把计算后的结果赋值给变量,运算符放在变量的后面就先把计算前变量的值赋值给其他变量。
代码示例:
#include <stdio.h>
int main()
{
// 赋值运算符
int a = 4;
int b = 3;
printf("a=%d,b=%d\n", a, b);
// 直接显示a的值 后续才自增操作
printf("a++=%d\n", a++);
// a=5 ++a先自增操作
printf("++a=%d\n", ++a);
printf("--b=%d\n", --b);
printf("b--=%d\n", b--);
return 0;
}
执行程序:
五、逻辑运算符
逻辑运算符用于程序解决 类似 或者、并且 这种 含有逻辑关系的 情况。
将多个条件放在一起运算,最终返回 真(1)或 假(0)。
运算符 | 描述 |
&& | 且 两边同时成立,条件才成立 |
|| | 或 两边有一个成立,条件就成立 |
! | 取反 表达式为假,加 ! 为真;表达式为真,加 ! 为假 |
代码示例:
#include <stdio.h>
int main()
{
// 赋值运算符
int a = 4;
int b = 3;
int c = 2;
printf("a=%d,b=%d\n", a, b);
// 值为1表示为真 0表示为假
printf("a>b&& a>c=%d\n", (a > b&&a > c));
printf("a>b || c>b=%d\n", (a > b || c > b));
printf("!c>b=%d\n", !(c > b));
return 0;
}
执行程序:
短路运算:
逻辑运算符的特性,导致实际应用中一部分表达式不执行,也能得出整个表达式结果。
- 判断 表达式 a && (b+c) 的结果:
- 当 a 为假时,不必计算 b+c,可直接得出表达式为假的结论。
- 判断 表达式 a || (b+c) 的结果:
- 当 a 为真时,则不必计算 b+c,就能判断出表达式的值为 真。
在代码中利用短路运算,可 避免不必要运算,提高程序执行效率。
总结:
- &&:同真为真; ||:有真为真; ! :真非为假
- 判断一个数在另两个数范围内,用 && 实现
- 短路特性:运算符左侧表达式可直接得结论,则右侧表达式不执行
- 利用短路特性:&&,将易假表达式放左侧;||,将易真表达式放左侧
六、条件运算符
条件运算符也可以称为三目运算。
语法:表达式1?结果1:结果2。
规则:判断表达式是否成立,如果成立就返回结果1。如果不成立就返回结果2。
代码示例:
#include <stdio.h>
int main()
{
int score;
printf("请输入您的分数:");
scanf("%d", &score);
printf("判断是否及格:%s", score >= 60 ? "及格" : "不及格");
return 0;
}
执行程序:
七、逗号运算符
C语言中,逗号也是一种运算符。 用逗号将多个表达式连接起来,组成逗号表达式。一般形式为:
表达式 1,表达式 2,表达式 3,....,表达式 n
如:a+3, b+4, c+5 是一个 逗号表达式。
代码示例:
#include <stdio.h>
int main()
{
int i = 3;
int res = (i++, ++i);
printf("i=%d\n", i);
return 0;
}
执行程序: