在循环的使用中,我们经常会使用到++,但是++放在变量前与变量后的意义却是不一样的。下面我们都过一段程序来验证一下:
#include <stdio.h>
int main()
{
int a = 0, b = 0, c = 0, d = 0;
a++; ++b;
printf("%d %d",a,b);
}
输出结果为a=1 b=1,所以我们可以知道,不管前置++,还是后置++,都等于变量+=1;
现在我们改变一下代码:
#include <stdio.h>
int main()
{
int a = 0, b = 0, c = 0, d = 0;
c=a++; d=++b;
printf("%d %d", c, d);
}
此时,输出结果为c=0 d=1,为什么会这样呢?
原来当++在变量右边时,变量会先进行使用,然后再进行+1;
当++在变量左边时,变量会先进行+1,然后再进行使用;
特别需注意的是:当我们在while循环中使用++时
int main()
{
int a = -3;
while (a++);
printf("%d", a);
return 0;
}
在这段程序中,我们希望当a=0时,结束循环。但实际上,此时打印出来的=1。
这是因为,a=0,先进行while条件判断,0为假,循环结束,然后在进行了a+1.。
所以输出的a=1。