| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 985 人关注过本帖
标题:[求助]有一段关于数组与指针的程序看不懂,希望得到帮助.
取消只看楼主 加入收藏
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
 问题点数:0 回复次数:5 
[求助]有一段关于数组与指针的程序看不懂,希望得到帮助.
以下程序的输出结果是
main()
{ char ch[3][4]={"123","456","78"}, *p[3]; int i;
for(i=0;i<3;i++) p[i]=ch[i];
for(i=0;i<3;i++) printf("%s",p[i]);
}
A: 123456780
B: 123 456 780
C: 12345678
D: 147
答案: C
for(i=0;i<3;i++) p[i]=ch[i];
这一步我只知道把p[i]=ch[i];执行3次,
for(i=0;i<3;i++) printf("%s",p[i]);
这一步我只知道输出p[i],其它的基本看不懂,尤其是p[i]=ch[i];更加不懂了.
搜索更多相关主题的帖子: 指针 
2006-08-21 23:02
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
我主要是定义*p[3]这个语句没搞懂,这个*p[3]表示什么意思,是指指针p有三个元素吗?
2006-08-21 23:27
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用ミつン戀ン在2006-8-21 23:29:37的发言:
for(i=0;i<3;i++) p[i]=ch[i];
这个就是把每个字符串首地址即每个一维数组的首地址给到指针数组里

按照前辈的说法,ch数组每一行第一列分别是"1,4,7",答案应该是"1,4,7"?

2006-08-21 23:37
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用ミつン戀ン在2006-8-21 23:42:44的发言:
这个数组相当于是
123
456
78


*p[i]="123"p[i]是首地址,i==0
类推456
类推78

既然p[i]是首地址,那么printf("%s",p[i]);打印出来的结果应该是每行第一个元素也就是"1,4,7"对吗?不知道我理解错了吗?

2006-08-21 23:57
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用ミつン戀ン在2006-8-22 0:01:59的发言:
这里2维数组中的每行的一维数组.用%s输出的时候就是把首地址为p[i]的字符串全部输出(不包括字符串最后系统加的空字符).

那么改为%d输出一样吗?

2006-08-22 00:07
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 

我觉得%d*p[i]是1,4,7
%d p[i]是输出地址的整形值

2006-08-22 22:34
快速回复:[求助]有一段关于数组与指针的程序看不懂,希望得到帮助.
数据加载中...
 
   



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

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