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

自加自减运算符的概念:

自增自减运算符存在于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

发布了1 篇原创文章 · 获赞 2 · 访问量 48
App 阅读领勋章
微信扫码 下载APP
阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览