首先请大家看两个相似的程序:
第一个:
#include<stdio.h>
int size;
size=1;
void main()
{
while(++size<10.5)
{
printf("your size=%d\n",size);
}
}
第二个:
#include<stdio.h>
int size;
size=1;
void main()
{
while(size++<10.5)
{
printf("your size=%d\n",size);
}
}
大家认为这两个程序执行的结果会是什么?先上图,再来解释
结果1: 结果二:
为什么++位置的不同会打印出这样的差异呢?第一个程序中while(++size<10.5);其实质是先进行size=size+1;然后再和10.5进行比较,二个程序中while(size++<10.5)实质是size和10.5先比较,然后size=size+1;这样一来的话在循环到第九次的时候,size的值是10<10.5,条件为真,size=size+1;所以会打印出一个size=11的结果来。
如果你还不明白这样的结果:下面再来举一个例子。
app=a++;//意思是a先赋值给app,然后a再自加;
bpp=++b;//意思是b先自加,然后再把b再把值赋给bpp;
这样你应该就会明白++在前和在后的区别了吧!
good night!