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 展开
char *ps;
ps="C Language";
printf("%s\n",ps);
//1.ps 是地址,应该输出地址才对,为什么会输出 "C Language"
//2. printf("%s\n",*ps); 为什么这样写会错?
//ps指向一个常量,不能写还可以理解,为什么can't read 展开
4个回答
展开全部
ps是指向一个字符串的指针,它同时是一个字符串的首地址,而%s是解析后面的字符串,参数必须是首地址!!这样就不会错了:printf("%c\n",*ps);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//1.ps 是地址,应该输出地址才对,为什么会输出 "C Language"
ps是地址没错,语法要求就是这样写的。就是输出内存的值,而不是地址。
ps是地址没错,语法要求就是这样写的。就是输出内存的值,而不是地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%s就是要求对应的参数是一个字符型指针,然后打印出该字符串的值。
如果想打印指针的地址 可以用%p
*ps是一个字符,如果想打印,可以用%c
如果想打印指针的地址 可以用%p
*ps是一个字符,如果想打印,可以用%c
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你改成printf("%d\n",ps)输出的就是地址了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询