费话罗 2023-04-23 15:03 采纳率: 100%
浏览 20
已结题

C中i++和++i在for循环中无差别的疑惑

C语言中
do while 循环 中i++ 和++i的循环结果不一样,可以理解i++为先判断i的值,输出i+1的赋值

    do
    {
        printf("%d\n",i);
    }
    while(++i<10);
do
    {
        printf("%d\n",i);
    }
    while(i++<10);

两段输出分别为 :0 ~ 9 和 0 ~ 10

 for(i=0;i<10;i++)
    {
        printf("count is %d\n",i);
    }

无论是i++还是++i,其输出都是0~9
一直想不明白,这是为啥,求解答。

  • 写回答

4条回答 默认 最新

  • 乘风xs 2023-04-23 15:08
    关注

    在for循环中,你可以认为它是等价的

    int i = 0;
    while( i < 10) {
          printf("%d", i);
          i++; // 这里是单独的一行,无论是i++/还是++i,这一行之后i的值都自增了。而在你上面的while循环中,i++和++i是要考虑判断后取值还是取值后判断
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月4日
  • 已采纳回答 4月26日
  • 创建了问题 4月23日

悬赏问题

  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥15 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环
  • ¥15 ADS已经下载好了,但是DAS下载不了,一直显示这两种情况,有什么办法吗,非常急!