| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 855 人关注过本帖
标题:请问这个程序怎么解释
只看楼主 加入收藏
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
结帖率:66.67%
收藏
 问题点数:0 回复次数:10 
请问这个程序怎么解释

#include <stdio.h>
#include<conio.h>
main()
{ int i=1,sp=26;
while(i++<=26&&sp-->=1)
{
printf(" "+i),
printf("abcdefghijklmnopqrstuvwxyz"+sp),putchar('\n');
}
getch();
}

这个程序的结果大家可以自己运行看看,但是我不大明白的是两个printf语句后面为什么用逗号。我试了下,分号也可以运行。再就是这两个printf语句怎么理解啊?




上面的帖子是看见其他人发的``
我也看不懂``

最不明白的是+i和+sp什意思``而且为什么在他们前面没有",呢?

搜索更多相关主题的帖子: 解释 
2007-06-28 19:23
lico
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-1-15
收藏
得分:0 
回复:(死了都要C)请问这个程序怎么解释
我也有同样疑问

密切关注
2007-06-28 21:00
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
printf(" "+i)
其中" "字符串是以地址的形式计算和传递的
2007-06-28 21:14
allen303alle
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-6-27
收藏
得分:0 

呵呵,比较有趣的程序
printf(" "+i),中
两个双引号中有26个空格,表示一个由26个空格组成的字符串。
" "是26个字母组成的字符串的首地址,第一轮时i为2
表示输出从第三个地址开始以后的字符,就是24个空格。
printf("abcdefghijklmnopqrstuvwxyz"+sp)这个语句同样理解,第一次输出的就是a所在的地址后25个,就是z
依次循环就得到运行的结果了~~~~

至于用逗号,只是使用的逗号表达式,在这里影响不大,换成分号结果一样

getch()是包含在头文件<conio.h>中的,<conio.h>是“通用输入输出库”,主要是文件和标准控制台的输入输出
不是标准库函数的头文件,用的很少~~~~~

总之平时大家还是不要写出这样的程序,能写出大家都看得懂的程序的程序员才是一个好的程序员,,呵呵


未贏其財,先贏其勢;獅子搏兔,君臨天下 ...................遇強即屈,借花敬佛。
2007-06-28 22:37
cihren
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-27
收藏
得分:0 

好办法,长见识了,C的指针就是厉害....


革命尚未成功,同志仍需努力!
2007-06-28 22:37
cihren
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-27
收藏
得分:0 
补充一下,原程序存在问题,最后一行不能对齐
应该将i定义为int i=0;
两次运行结果如下:
z
yz
xyz
wxyz
vwxyz
uvwxyz
tuvwxyz
stuvwxyz
rstuvwxyz
qrstuvwxyz
pqrstuvwxyz
opqrstuvwxyz
nopqrstuvwxyz
mnopqrstuvwxyz
lmnopqrstuvwxyz
klmnopqrstuvwxyz
jklmnopqrstuvwxyz
ijklmnopqrstuvwxyz
hijklmnopqrstuvwxyz
ghijklmnopqrstuvwxyz
fghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
defghijklmnopqrstuvwxyz
cdefghijklmnopqrstuvwxyz
bcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

定义i=0;后
z
yz
xyz
wxyz
vwxyz
uvwxyz
tuvwxyz
stuvwxyz
rstuvwxyz
qrstuvwxyz
pqrstuvwxyz
opqrstuvwxyz
nopqrstuvwxyz
mnopqrstuvwxyz
lmnopqrstuvwxyz
klmnopqrstuvwxyz
jklmnopqrstuvwxyz
ijklmnopqrstuvwxyz
hijklmnopqrstuvwxyz
ghijklmnopqrstuvwxyz
fghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
defghijklmnopqrstuvwxyz
cdefghijklmnopqrstuvwxyz
bcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

[此贴子已经被作者于2007-6-28 22:48:36编辑过]


革命尚未成功,同志仍需努力!
2007-06-28 22:47
herbert_1987
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:1314
专家分:0
注 册:2007-5-13
收藏
得分:0 
呵呵, 第一次见过, 4楼分析得很好.

人生重要的不是所站的位置,而是所朝的方向
2007-06-28 23:20
killer_l
Rank: 2
等 级:新手上路
威 望:3
帖 子:1139
专家分:0
注 册:2007-5-25
收藏
得分:0 
理解了,顶4楼的

2007-06-29 06:58
a307871404
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-6-19
收藏
得分:0 
int i=1,sp=26;
while(i++<=26&&sp-->=1)
不明白第一轮i怎么为2
i++不是先取i再自加的吗

我让我喜欢的人不开心     真没用
2007-06-29 09:19
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
4楼说的第一论i位是说while后面的{}一的i
这个时候的i已经是2了,因为在while里++了``

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-06-29 18:37
快速回复:请问这个程序怎么解释
数据加载中...
 
   



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

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