| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 961 人关注过本帖
标题:能帮我解释下两者的区别吗
只看楼主 加入收藏
dtxwz
Rank: 2
等 级:论坛游民
帖 子:79
专家分:45
注 册:2011-9-18
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:10 
能帮我解释下两者的区别吗
# include <stdio.h>
# include <string.h>
int main()
{
    char string[81];
    int i,word = 0, num = 0;
    char c;

    gets(string);

    for(i = 0;(c = string[i])!='\0';i++)    // 和 for(i=0;(c = string[i] != '\0');i++) 的区别?顺便解释下后者的意义
        
        if(c == ' ')
            word = 0;
        
        else if(word == 0)
        {
            word = 1;
            num++;
        }
        
    printf("There is %d words in this line.\n", num);
    return 0;
}
搜索更多相关主题的帖子: include return 
2013-09-01 13:54
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:2 
运算符优先级

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-09-01 15:19
dtxwz
Rank: 2
等 级:论坛游民
帖 子:79
专家分:45
注 册:2011-9-18
收藏
得分:0 
回复 2楼 peach5460
那后面的循环怎么样才算结束了呢?
2013-09-01 15:32
loveClangage
Rank: 8Rank: 8
来 自:广东云浮
等 级:蝙蝠侠
帖 子:326
专家分:891
注 册:2013-8-23
收藏
得分:2 
主要是运算优先问题,楼主回查下各个运算符的优先级,至于后者,由于!=运算符比=(赋值)高,所以后者是没有结束条件的,

编写的程序,不能改变世界,却可以改变自己...
2013-09-01 20:34
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:2 
对于我们这些菜鸟而已,优先级懂不懂没关系,只不过是多加个括号而已

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-09-01 20:42
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:2 
其实后面那种还是可以结束的,几位试试这段代码:
程序代码:
#include <stdio.h>

int main(void)
{
    int i;
    char string[] = "test.", c;
    for(i = 0; (c = string[i] != '\0'); i++)
    {
        printf("%d.", c);
    }
    return 0;
}

mingw32编译运行结果为
1.1.1.1.1.
当string[i] == '\0'的时候string[i] != '\0'结果为0,将0赋给c,此时赋值语句作为条件语句的话那么就以左式的值作为判断,于是程序就退出了。
不过如果没有linus的功底还是不提倡使用这种特性。

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2013-09-01 21:46
米兰的大铁匠
Rank: 2
来 自:天外
等 级:论坛游民
帖 子:61
专家分:84
注 册:2013-7-16
收藏
得分:2 
主要是运算优先问题
2013-09-01 22:01
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:2 
括号的目的就是改变运算顺序啊

Maybe
2013-09-01 23:22
歌舞伎町
Rank: 2
等 级:论坛游民
帖 子:30
专家分:38
注 册:2013-8-7
收藏
得分:2 
回复 5楼 小小程序猿
我非常赞成你的说法,当我这个更小的菜鸟遇到无法确定优先级的情况的时候,我直接就括号了,这样至少可以避免优先级错误的问题……
2013-09-02 01:52
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
回复 4楼 loveClangage
有结束条件啊,怎么没有

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-09-02 08:08
快速回复:能帮我解释下两者的区别吗
数据加载中...
 
   



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

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