| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 393 人关注过本帖
标题:问两个问题
只看楼主 加入收藏
whoaiwo310
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2010-3-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
问两个问题
1.#include "stdio.h"                             2.main(){char ch[3][4]={"123","456","78"},*p[3];
                                                   int i;   
int a[3][3]={1,2,3,4,5,6,7,8,9},*p;                for(i=0;i<3;i++) p[i]=ch[i];
main()                                             for(i=0;i<3;i++) printf("%s",p[i]);}
{p=(int*)malloc(sizeof(int));                      我想问的是ch[i]是不是代表每行的第一个元素
 f(p,a);
 printf("%d\n",*p);
}
f(int*s,intp[][3])
{*s=p[1][1];
}
我想问的是红颜色标记的那段代码什么作用。        希望哪位仁兄解答下!
2010-03-28 21:30
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:20 
1.p=(int*)malloc(sizeof(int)); 申请一段大小为sizeof(int)的空间,并使p指向它

2.ch[i]分别代表的是字串"123","456","78"的首地址,当然在它的这个地址取值的话,得到的结果是该行的第一个元素的值

2010-03-28 21:53
whoaiwo310
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2010-3-16
收藏
得分:0 
谢谢楼上的解答,关于第一问,我想问如果没那段红颜色的代码,程序会报什么错误。关于第二问。我想问的是这个数列是3行4列形式,应该有12个元素,但只写了8个元素,是不是还有4个元素都是0,所以省略不写啊
2010-03-28 22:43
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:0 
第一问如果没有红色代码,p指向的空间就是不定的,如果修改它指向地址的值会报内存方面的错误;

写字符串时,编译器会在字串的末端加个'\0', 并且初始化数组时,会把没有引用到的元素置0
2010-03-28 23:12
快速回复:问两个问题
数据加载中...
 
   



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

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