| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1073 人关注过本帖
标题:这段简单代码为什么输出的是该值
只看楼主 加入收藏
msl12
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2015-2-6
结帖率:25%
收藏
 问题点数:0 回复次数:18 
这段简单代码为什么输出的是该值
# include <stdio.h>

int main(void)
{
    int count=0;
    printf("%d %d %d %d\n", ++count, ++count, ++count, count);
    //printf("%d %d %d %d\n", count++, count++, count++, count);
   
    return 0;
}
---------------------------------------------------------------------------
不应该是1 2 3 3么?
搜索更多相关主题的帖子: include return count 
2015-04-27 17:20
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
#include<stdio.h>
int main(void)
{
    int count=0,co=0,uo=0;
    int last=(++co, ++co, ++co, co);
    printf("co=%d,(++co, ++co, ++co, co)=%d\n",co, last);
    uo=last;printf("uo=%d\n",uo);
    last=(uo++, uo++, uo++, uo);
    printf("uo=%d,(uo++,uo++,uo++, uo)=%d\n",uo,last);
    printf("%d %d %d %d\n", ++count, ++count, ++count, count);
    //printf("%d %d %d %d\n", count++, count++, count++, count);
   
    return 0;
}
关于逗号运算符的部分算法,这里简单用几个例子说明一下,不知道能不能理解

剑栈风樯各苦辛,别时冰雪到时春
2015-04-27 17:39
q295323996
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2014-12-19
收藏
得分:0 
逗号运算符在括号里是取最后一个变量或常量的值这个可以看懂,但是在输出语句中这样输出没看懂,同求解此问题
2015-04-27 20:36
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 3楼 q295323996
这里如你说的取最后一个表达式结果一样,逗号运算符隔开的语句并没有拆开这条语句。也就是说++count,++count,++count,count这部分是一个语句!
整体执行完才继续下面的输出语句
那么运算完count为3,陆续出现四个3就不奇怪了吧

剑栈风樯各苦辛,别时冰雪到时春
2015-04-27 20:49
请叫我IT楠
Rank: 2
来 自:未来星系
等 级:论坛游民
帖 子:12
专家分:23
注 册:2015-4-25
收藏
得分:0 
0,1,2,3

小弟初来咋到
2015-04-27 21:15
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:0 
当调用printf函数的时候,先是最右边的参数入栈,从右往左输入,显示时从左往右取出。
所以计算时就时3,2,1,0
2015-04-27 21:23
请叫我IT楠
Rank: 2
来 自:未来星系
等 级:论坛游民
帖 子:12
专家分:23
注 册:2015-4-25
收藏
得分:0 
回复 4楼 林月儿
人家问的是第一条输出的值,而不是第二条

小弟初来咋到
2015-04-27 21:31
请叫我IT楠
Rank: 2
来 自:未来星系
等 级:论坛游民
帖 子:12
专家分:23
注 册:2015-4-25
收藏
得分:0 
回复 6楼 我爱吃青菜
这应该是最好的解释

小弟初来咋到
2015-04-27 21:33
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 7楼 请叫我IT楠
是的,被注释了然后没注意,我的错

剑栈风樯各苦辛,别时冰雪到时春
2015-04-27 22:17
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 5楼 请叫我IT楠
如果都不注释的话是5,4,3,6吧,之前不是加到3了吗?加的话2,1,0,3

剑栈风樯各苦辛,别时冰雪到时春
2015-04-28 07:16
快速回复:这段简单代码为什么输出的是该值
数据加载中...
 
   



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

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