C语言自增自减运算符的区别与理解

Alysa ·
更新时间:2024-09-21
· 744 次阅读

C语言自增运算符的置于变量前和变量后的区别与理解自加自减运算符的概念:在普通语句定义并用printf函数输出结果for循环中作为判断条件结语Reference 自加自减运算符的概念:

自增自减运算符存在于C/C++/C#/Java/Python等高级语言中,它的作用是在运算结束前(前置自增自减运算符)或后(后置自增自减运算符)将变量的值加(或减)一。主要的使用方式就两种,用在操作数前和操作数后,下面通过实例来具体探索一下实际的区别有哪些。

在普通语句定义并用printf函数输出结果

先看如下代码:

void main() { int i = 1; int a = i++; //等价于 a = i; i = i + 1; int b = ++i; //等价于 i = i + 1; b = i; printf("%d %d" ,a,b); }

结果为:
a的值为1,b的值为3
根据结果我们可以看出当自加(自减)运算符放在变量后,该变量先参与运算,再实现加一操作;如果放在变量前,那么该变量就先要先加一,再参加运算。

for循环中作为判断条件

在for循环中,自加(自减)运算符通常作为控制循环次数的判断条件,那么放在变量前和变量后对循环次数有什么影响么?看如下代码:

void main() { int count = 0; int count1 = 0; for(int i = 0; i < 6; i++) { printf("%d ", i); count++; } printf("\n"); printf("%d\n" , count); for(int i = 0; i < 6; ++i) { printf("%d ", i); count1++; } printf("\n"); printf("%d\n" , count1); }

结果为:

两种形式对比

显然,在for循环中使用这两种不同的语句,循环的次数是一样的,这是由于判断条件的三个表达式也是有执行顺序哒!请看下面测试代码:

void main() { int i; for(printf("No.1\n"),i = 0; printf("No.2\n"),i < 3; printf("No.3\n"),i++) { printf("LOOK AT HERE! \n"); } }

结果为:
for循环体的执行顺序

我们可以直观的看出,除了第一次先执行第一个表达式,接着第二个,然后是循环体里内容,执行完循环体内容才执行第三个表达式之后就是第二个表达式判断,循环体,第三个表达式这样循环,知道不满足条件退出循环。这个执行顺序使第三个表达式无论自增(自减)符号在哪里只是执行它使循环变量加一操作,最后循环的结果是一样的!所以小伙伴们在使用for循环是不要有顾虑,想用哪个就用那个。

结语

自加自减运算符是C语言期末考试和计算机二级考试中一个小的考点,虽然不难,但是时间久了我们难免会搞忘了容易出错。希望这篇文章可以帮你加深理解。

Reference

https://baike.baidu.com/item/自增自减运算符/19519096?fr=aladdin


作者:李双柠



运算符 自增 自减 C语言

需要 登录 后方可回复, 如果你还没有账号请 注册新账号