请教一个C++指针的问题,急急急!!

若有char*p=“Hello”;则下列错误的是_(10)_。A.char&a=*p;B.char*s=*p;C.char*q=p+2;D.p=p+2;A和B不懂啊!!... 若有 char *p=“Hello” ;则下列错误的是_(10)_。
A.char &a=*p;
B.char *s=*p;
C.char *q=p+2;
D.p=p+2;

A和B不懂啊!!
展开
 我来答
MasterLeftWing
2013-01-22 · TA获得超过145个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:87.8万
展开全部
char *p=“Hello” ;这个指针指向的是字符串的首地址,当你打印printf("%c",*p);出现的是h
&a是取地址,所以把*p复制给&a没有错误都是地址啊
B.char *s=*p; 错误
你可以改成

char *s=p;
或者
.char *s;
s=p;
就对了
追问
不是可以char *s=“Hello”吗??
追答
可以但是s和p就不一样了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e6f0b5a7b
2013-01-26 · TA获得超过2193个赞
知道大有可为答主
回答量:5331
采纳率:0%
帮助的人:1922万
展开全部
A [] [4]是一个二维数组只能做一维参数的下标可以不写,说的可变长度的元素。一个二维数组名,A [0]是第一行的指针。所以,你应该定义行指针:INT(A)[] = A等。
包括:
* A = A [0] *(A +1)= A [1] A [0]的行数组的指针。 A +1行加1。 ** P,P +1指针加1。不一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Eva殇
2013-01-22 · 超过11用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:15.3万
展开全部
A中&表示引用,即a和*p是一样的,改变了*p的值,a的值也变了
B中s是个char*的指针,而*p是个值,所以B是错的
追问
不是可以char *s=“Hello”吗??
追答
char *s=“Hello”中s是个char*型的指针,"Hello"返回的是这个常量字符串的首地址,
所以char *s="Hello"没问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
日光倾城Joanna
2013-01-22
知道答主
回答量:10
采纳率:0%
帮助的人:6.4万
展开全部
A:定义了一个char型“引用变量”a,a是*p的引用
B:指针s指向*p的地址,s是“指针的指针”,应该改成char *s=&p
追问
不是可以char *s=“Hello”吗??
追答
可以,但这样的话就是*s=*p,而s不等于p
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
spring2259519
2013-01-22 · TA获得超过149个赞
知道小有建树答主
回答量:220
采纳率:71%
帮助的人:52.4万
展开全部
B,*P已经定义,所以在后面定义其他时,*P就是HELLO,而不是地址了,*S定义的是指针与他相等的就只有是地址。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式