自增(++
)和自减(--
)是两种常见的C语言中的运算符,用于将变量的值增加或减少1。它们的主要作用包括:
-
自增 ++, 放在变量前面或后面,对变量自身值+1。
-
自减 --, 放在变量前面或后面,对变量自身值-1。
-
方便实现变量的 +1 或 -1 运算。
典型应用场景:
- 点赞 和 取消点赞。
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
++ | 自增 | int a=1; a++ 或 ++a;(等同于a = a+1) | a 值为 2; |
-- | 自减 | int b=5; b-- 或 --b;(等同于b = b-1) | b 值为 4; |
自增自减语法格式:
cpp
// 自增
++变量; // 相当于 变量 = 变量 + 1;
// 自减
--变量; // 相当于 变量 = 变量 - 1;
代码示例:
cpp
// 目标: 掌握 ++ 自增1, -- 自减1 特性
int main(void)
{
int a = 10;
//a++; // a = a + 1;
++a; // a = a + 1; 与 a++ 效果相同
printf("a = %d\n", a);
//a--; // a = a -1;
--a; // a = a -1; 与 a-- 效果相同
printf("a = %d\n", a);
return 0;
}
1 前缀后缀区别
注意:++ 和 -- ,如果不是单独使用(如:用在表达式中),前缀和后缀差异巨大
-
放在变量前,先 +1、-1 再取值使用。
cppint a = 10; int res = ++a; // 先 +1,再取 a 值给 res。 (先加再用)
-
放在变量后,先 取值用,再 +1、-1
cppint b = 10; int res2 = b--; // 先取 b 值给 res2, 而后 b 再 -1 (先用再减)
代码示例:
cpp
// 目标: 掌握 ++/-- 前缀后缀差异
int main(void)
{
int a = 10;
int res = ++a; // 先+1,再用
printf("res = %d\n", res);
int b = 10;
//printf("b = %d\n", b--); // 先用,再-1
printf("b = %d\n", --b); // 先-1,再用
printf("b = %d\n", b); // 查看b值
return 0;
}
2 注意事项
-
不能用于常量。
-
不能用于表达式。
-
优先级:整体高于算数运算符(必然高于比较、赋值);后缀高于前缀。
-
不要在一个表达式中,对同一变量 多次 ++、-- 运算。可读性差,且不用编译系统结果不同。
cpp
// 目标: 掌握 ++/-- 使用注意事项
int main(void)
{
// 1. 不能用于常量
//printf("%d\n", 10++);
// 2. 不能用于表达式
int a = 10;
// (a - 1)++;
// ++(-a);
// 3. 全部 高于算数运算
//int b = ++a * 3;
int b = a-- * 3;
printf("b = %d\n", b);
// 3. 后缀高于前缀
printf("a = %d\n", -a++);
// 对同一变量 多次 ++、-- 运算。可读性差,且不同编译系统结果不同。
int i = 10;
int j = 5;
int res = i++ + ++i - --j - ++j + 3 + i--;
printf("res = %d\n", res); // 26 --- Linux下gcc编译器: 28
printf("i = %d\n", i); // 11
printf("j = %d\n", j); // 5
return 0;
}
3 总结
-
++ 自增 1, --自减 1
-
单独使用,前缀后缀没区别;
-
非单独使用:前缀,先+1、-1,再用; 后缀,先用,再+1、-1
-
只适用变量,不能用于常量、表达式。
-
优先级,高于算数、比较、赋值。后缀高于前缀。