| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:在while里的增量运算符有点没搞明白
取消只看楼主 加入收藏
yaozuo3292
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-3-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
在while里的增量运算符有点没搞明白
增量运算符和顺序点的问题有点 没明白,下面是代码一:


#include  <stdio.h>

int main (void)
{
    int count, sum;

    count = 0;
    sum = 0;

    while (count++ <20)
    {
        sum = sum + count;
        printf ("sum = %d\n", sum);
    }

        getch ( );
        return 0;
    }


运行结果是:
sum = 1
sum = 3
sum = 6
……
==================================================


代码二:



#include <stdio.h>

int main (void)
{
    int i;
    i = 1;

    while ( i++ < 5)
    {
        printf ("早上好啊! ");
    }


    return 0;
}



输出结果是:
早上好啊!早上好啊!早上好啊!早上好啊!

=============================================
不解:

在代码一中,count++ <20是while循环的判断条件,是完整表达式,c要保证副作用,所以会先加上1了再进行后面的语句,因此第1个结果是sum = 1而不是 sum = 0. 如果按照这个思路的话,代码二中的 i++ < 5也一样要先加1了再进行后面的语句啊,结果就应该只是显示3个“早上好啊”而不是4个,可运行结果是4个,想不通啊?谢谢您了 !

[ 本帖最后由 yaozuo3292 于 2012-4-10 15:03 编辑 ]
搜索更多相关主题的帖子: count return include void 
2012-04-10 15:02
yaozuo3292
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-3-6
收藏
得分:0 
回复 2楼 飞莲
可是按照代码一的思路,i在while里的值应该从2开始啊(代码一 while (count++ <20) 就是从1开始进行运算而不是0啊)
2012-04-10 15:24
yaozuo3292
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-3-6
收藏
得分:0 
回复 4楼 飞莲
那我可不可以这样理解:

代码二中i 还是1,如果下面的语句中不是直接printf而是包含了含有i 运算的语句,那i 才会变成2。而代码二while中没包含i 的运算语句,所以i 从1开始?
2012-04-10 15:37
yaozuo3292
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-3-6
收藏
得分:0 
回复 6楼 xtay1324
恩恩,主要是代码一我理解有误,所以才会对代码二产生错误判断,现在知道了,谢谢您了!
2012-04-10 15:42
yaozuo3292
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-3-6
收藏
得分:0 
回复 4楼 飞莲
明白了,谢谢您了!
2012-04-10 15:42
快速回复:在while里的增量运算符有点没搞明白
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042704 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved