c语言中有个问题不明白,c新手求教!!char *p 的问题!!

main(){char*ps;ps="CLanguage";printf("%s\n",ps);//1.ps是地址,应该输出地址才对,为什么会输出"CLanguage"/... main(){

char *ps;
ps="C Language";
printf("%s\n",ps);

//1.ps 是地址,应该输出地址才对,为什么会输出 "C Language"

//2. printf("%s\n",*ps); 为什么这样写会错?
//ps指向一个常量,不能写还可以理解,为什么can't read
展开
 我来答
做人为人为人8592
2011-08-28 · TA获得超过6.3万个赞
知道大有可为答主
回答量:3.5万
采纳率:0%
帮助的人:4910万
展开全部
ps是指向一个字符串的指针,它同时是一个字符串的首地址,而%s是解析后面的字符串,参数必须是首地址!!这样就不会错了:printf("%c\n",*ps);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shenaodong
2011-08-28 · TA获得超过960个赞
知道小有建树答主
回答量:868
采纳率:0%
帮助的人:786万
展开全部
//1.ps 是地址,应该输出地址才对,为什么会输出 "C Language"
ps是地址没错,语法要求就是这样写的。就是输出内存的值,而不是地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JZ_Jack
2011-08-28 · TA获得超过428个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:290万
展开全部
%s就是要求对应的参数是一个字符型指针,然后打印出该字符串的值。
如果想打印指针的地址 可以用%p
*ps是一个字符,如果想打印,可以用%c
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夫人的老公
2011-08-28 · TA获得超过195个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:101万
展开全部
你改成printf("%d\n",ps)输出的就是地址了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式