| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 728 人关注过本帖
标题:i 为啥等于5
只看楼主 加入收藏
liulei1234
Rank: 2
等 级:论坛游民
帖 子:32
专家分:24
注 册:2011-5-31
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:13 
i 为啥等于5
#include"stdio.h"
main()
{
   
int i ;
for(i=1;i++<4;);

    printf("%d",i);
搜索更多相关主题的帖子: include 
2011-06-23 16:53
liulei1234
Rank: 2
等 级:论坛游民
帖 子:32
专家分:24
注 册:2011-5-31
收藏
得分:0 
求解释啊,
2011-06-23 16:53
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:2 
GCC编译结果最后是4。 此类问题跟编译器有关。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-23 16:57
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:2 
以下是引用ansic在2011-6-23 16:57:55的发言:

GCC编译结果最后是4。 此类问题跟编译器有关。



扯淡,你们家的gcc的结果是4 吧。
2011-06-23 17:15
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:2 
for(i=1;i++<4;);//空语句
i=4时,不符合要求,i++后,输出5
2011-06-23 17:17
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:2 
那个for循环还能这么写吗?
2011-06-23 17:19
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用Devil_W在2011-6-23 17:15:17的发言:




扯淡,你们家的gcc的结果是4 吧。

请注意你的语言。谢谢。
程序代码:
root@~ #gcc --version
gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

root@~ #cat 23.c
#include <stdio.h>

int main (void) {

        int i;
        for(i=1;i++<4;);    //楼主这里的代码有分号,也即当i++以后没有执行for没有正确执行
                printf("%i\n",i);

        for(i=1;i++<4;)     //假设是这样的话,最后i的结果就是4
                printf("%i\n",i);

        return 0;

}

root@~ #./23
5
2
3
4
root@~ #


[ 本帖最后由 ansic 于 2011-6-23 17:27 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-23 17:25
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:2 
这不管用什么编译器都不可能是 4。结果必为 5。
原因如下:
当 i == 4 时,检测 for 循环条件 i++ < 4。
i++ 返回 4,之后使 i 的值自增 1,同时循环结束
这时候 i == 5

楼上第二种情况与楼主的情况不同

[ 本帖最后由 voidx 于 2011-6-23 17:33 编辑 ]
2011-06-23 17:32
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:2 
这个是就先加后用,先用后加的问题!

   唯实惟新 至诚致志
2011-06-23 17:44
Begin2011
Rank: 2
等 级:论坛游民
帖 子:60
专家分:61
注 册:2011-6-7
收藏
得分:2 
看的莫名其妙,新手飘过,不解释。。
2011-06-24 14:01
快速回复:i 为啥等于5
数据加载中...
 
   



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

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