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

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

[复制链接]
发表于 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]
发表于 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)是必然
 楼主| 发表于 2007-8-15 12:44:49 | 显示全部楼层
[s:7] 明白了不少,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-11-6 18:28 , Processed in 0.013769 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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