++i与i++的根本性区别(两个代码对比搞定)

首先来看++i

代码如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i=0;
    int a=++i;
    printf("%d\n",a);
    printf("%d\n\n\n",i);

    return 0;
}

输出结果如下:

++i与i++的根本性区别(两个代码对比搞定)

解释:++i其实是两行代码的简写形式,先加后赋值(a=++i)

即:a=i+1;i=i;

a=++i;结果输出a=1;i=1;

也就是说,i的值是先将i=i+1赋值给a,然后在i=i;

再来看i++

代码如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int j=0;
    int b=j++;
    printf("%d\n",b);
    printf("%d\n\n\n",j);

    return 0;
}

输出结果如下:

++i与i++的根本性区别(两个代码对比搞定)

解释:i++其实也是两行代码的简写形式,先赋值后加(a=i++;)

即:a=i;i=i+1;

a=i++;结果输出a=0;i=1;

也就是说,i的值是先赋值给a的,之后再i=i+1;