问答详情
源自:5-11 变量存储类别

这是什么逻辑

为什么

#include <stdio.h>

int main()
{
    int i=0;
    printf("%d,%d",i++,++i);
    return 0;
}

输出是1,2

#include <stdio.h>

int main()
{
    int i=0;
    printf("%d",i++);
    return 0;
}

输出是0?

提问者:慕先生1377973 2018-10-21 21:25

个回答

  • 慕粉2104302525
    2018-10-27 21:30:10

    i++是先取值后自增,++i是先自增后取值

    printf函数的执行顺序是由右到左的,如:函数printf("%d%d\n",a,b);函数的实际输出顺序是先计算出b,然后在计算a,接着输出a,最后在输出b;