++运算的奇妙之处

来源:互联网 发布:linux运行anaconda 编辑:程序博客网 时间:2024/04/26 16:39

首先请大家看两个相似的程序:

第一个:

#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!

     


1 0