幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2120|回复: 2

[通用编程] 问下指针数组的问题

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-8-15 00:13:09 | 显示全部楼层 |阅读模式
char *string[3]={"data structure","computer design","c laguage"};
char *p;
有这样的程序, 其可通过这样strcmp  再p=string[0],string[0]=string[1];string[1]=p;
这样改变指针数组里元素的位置,但为什么 p=string[0];  printf("%s\n",*p); 这样却不可以把第一个元素打印出来呢?[s:6]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-8-15 12:14:34 | 显示全部楼层
p=string[0];  printf("%s\\n",*p);
好吧,最大的問題是字串(string, %s)是一陣列以\\0作尾的char
也就是char*,char指標
最一般的用法該為 printf("%s\\n",p);
如果成了 printf("%s\\n",*p);
printf中參照的字串(因為字串是指標)便會是p指著的字串中第一個字元,也就是'd',把'd'(也可能是'data',自己譯成ASCII吧)作為記憶體位置參照,記憶體出錯(Seg. Fault)是必然

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-8-15 12:44:49 | 显示全部楼层
[s:7] 明白了不少,谢谢
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-30 05:28 , Processed in 0.018532 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表