自增自减运算符存在于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);
}
结果为:
根据结果我们可以看出当自加(自减)运算符放在变量后,该变量先参与运算,再实现加一操作;如果放在变量前,那么该变量就先要先加一,再参加运算。
在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循环是不要有顾虑,想用哪个就用那个。
结语自加自减运算符是C语言期末考试和计算机二级考试中一个小的考点,虽然不难,但是时间久了我们难免会搞忘了容易出错。希望这篇文章可以帮你加深理解。
Referencehttps://baike.baidu.com/item/自增自减运算符/19519096?fr=aladdin