能再说说i++和++i的区别吗?
明月 资深会员 2016-09-02 16:46:26
2874 5 0

老师,我试着写了下边这个程序,输出的全是偶数,当我i=1时输出的又全是奇数,这是为什么呢?我觉得i++和++i我还是没弄明白。

#include <stdio.h>

main()

{

int i;

for(i=1;i<=100;++i)

{

printf("%8d",++i);

if(i%5==0)

printf("\n");

}

}


问题来自: for循环实例

共 5 个回答

    qqq 资深元老 助教 2799天前

    i++和++i的区别就是,前者整体值为i,后者整体值为i+1;相同点就是经过这两个表达式,i自身的值都会+1。实在难理解就记住结论好了。

    明月 资深会员 2798天前

    大神老师,能把前面程序循环中i和++i的变化过程推算一下吗?谢谢!

    明月 资深会员 2796天前

    回复 qqq:老师,帮忙把前面程序i=1时,++i全是偶数的原因大致讲一下,推算一下嘛。在你们老师看来

    太简单不值一说,可是我弄不懂好纠结哦,好像后面的都弄不懂了!拜托!

    最佳答案

    qqq 资深元老 助教 2796天前

    回复 明月:for循环的执行过程应该清楚吧?先初始化i=1,然后判断i<=100是否为真,然后执行循环体,也就是输出++i的值,i=1时,printf要输出的是++i的值为2,i的值也变成了2;然后进入下一次循环,循环条件是for(i=1;i<=100;++i)中++i,因为第一个循环结束后i已经变成了2,所以执行完循环条件的++i后,i变成了3,那再执行printf中的++i时,输出的++i的值就是4了,此时i也变成了4...以此类推,printf一直输出i为偶数时的情况。。懂了么?

    明月 资深会员 2796天前

    回复 qqq:终于懂了,谢谢老师。

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题