| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 557 人关注过本帖
标题:帮我解释下一个简单的C程序
只看楼主 加入收藏
seep666
Rank: 2
等 级:论坛游民
帖 子:91
专家分:14
注 册:2010-3-18
结帖率:62.07%
收藏
已结贴  问题点数:20 回复次数:7 
帮我解释下一个简单的C程序
#include"stdio.h"
void main()
{
int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);
}
程序好像是没错,书的答案是10 10 9 1
不知道怎么得出来的,
搜索更多相关主题的帖子: 解释 
2010-04-01 20:48
playmyself
Rank: 5Rank: 5
来 自:第3系4级宇宙空间
等 级:职业侠客
帖 子:76
专家分:399
注 册:2009-7-8
收藏
得分:5 
赋值x=10;y=10;
计算i=0;
检察x>8
先输出x,y值=10后
x=9;y=10
执行y=++i后
y=1;x=9;i=1
输出x,y为9,1后
x=8,y=1
检察x>8不成立,退出。。。

三角形

无聊创造奇迹。
2010-04-01 20:58
seep666
Rank: 2
等 级:论坛游民
帖 子:91
专家分:14
注 册:2010-3-18
收藏
得分:0 
看不太懂,程序后面输出的时候是x--,
第一步x=10的时候,输出时执行X--不就是9吗
2010-04-01 21:10
seep666
Rank: 2
等 级:论坛游民
帖 子:91
专家分:14
注 册:2010-3-18
收藏
得分:0 
好像我没搞清楚自加自减的定义
2010-04-01 21:11
林语
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:184
注 册:2009-8-29
收藏
得分:5 
楼主可能是对表达式的执行顺序不清楚吧
printf("%d%d",x--,y);
是先把x的值(第一次是10)输出再使x自减
若是改成--x就是先使x 自减,再输出自减之后的值(第一次是9)

for 语句中括号中的第三个表达式(y=++i)是在每次执行完循环体后再执行的,
相当于放在了循环体的最后
即执行完printf  语句后再执行y=++i
2010-04-01 21:38
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:0 
x--=先运算,再自减1;
--x=先自减1,再运算;
x++和++x也一样。
2010-04-01 21:45
lihaofeng
Rank: 1
等 级:新手上路
帖 子:13
专家分:8
注 册:2010-3-10
收藏
得分:0 
为什么你们都比我积极。
2010-04-02 11:31
fotomaker
Rank: 2
等 级:论坛游民
帖 子:33
专家分:60
注 册:2009-2-20
收藏
得分:10 
回复 楼主 seep666
先是x=10,y=10
判断x>8是否成立,成立后
i=0,并输出x=10,y=10
然后执行x--,y=++i
这时,x=9,y=1
再判断x>8是否成立,成立
输出x=9,y=1
再执行x--,y=++i
这时x=8,y=2
判断x>8不成立,退出。
结果为10 10 9 1
2010-04-02 18:32
快速回复:帮我解释下一个简单的C程序
数据加载中...
 
   



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

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