问答详情
源自:4-10 循环结构之三种循环比较

i是怎么取值的?

54895a8f0001bc9e06840112.jpg

while中i首先赋值0,进入while后i++,这个不是先取值后计算吗?这样的话,i还是0呀,printf结果i就是第0遍写了?






等等

提问者:慕神9153076 2018-10-16 08:49

个回答

  • 慕粉0247298809
    2018-10-29 19:13:47

    我现在的理解是只有在直接打印时会先取值

    例如:

    int i = 0;

    printf("%d",i++)   这个时候i的值是0;

    如果是:

    printf("#d",++i)值打印出来就是1了。

    电脑在读代码时,是从左往右,从上到下;

    所以你发的例子里 

    i++; 计算机读到;号 i的值已经变了。

    printf("%d",i++)   这个例子里,计算机在读的时候读到i还没有读到++就取值打印了,

    所以才有了 i++是先打印再取值,++i是先取值再打印的说法。

    个人理解,不一定对


  • 禀决
    2018-10-16 15:58:53

    对啊,他的第0遍相当于第一遍,因为他的i取值是小于10,而小明是被罚抄十次