请教一个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不懂啊!! 展开
A.char &a=*p;
B.char *s=*p;
C.char *q=p+2;
D.p=p+2;
A和B不懂啊!! 展开
5个回答
展开全部
char *p=“Hello” ;这个指针指向的是字符串的首地址,当你打印printf("%c",*p);出现的是h
&a是取地址,所以把*p复制给&a没有错误都是地址啊
B.char *s=*p; 错误
你可以改成
char *s=p;
或者
.char *s;
s=p;
就对了
&a是取地址,所以把*p复制给&a没有错误都是地址啊
B.char *s=*p; 错误
你可以改成
char *s=p;
或者
.char *s;
s=p;
就对了
追问
不是可以char *s=“Hello”吗??
追答
可以但是s和p就不一样了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A [] [4]是一个二维数组只能做一维参数的下标可以不写,说的可变长度的元素。一个二维数组名,A [0]是第一行的指针。所以,你应该定义行指针:INT(A)[] = A等。
包括:
* A = A [0] *(A +1)= A [1] A [0]的行数组的指针。 A +1行加1。 ** P,P +1指针加1。不一样的。
包括:
* A = A [0] *(A +1)= A [1] A [0]的行数组的指针。 A +1行加1。 ** P,P +1指针加1。不一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A中&表示引用,即a和*p是一样的,改变了*p的值,a的值也变了
B中s是个char*的指针,而*p是个值,所以B是错的
B中s是个char*的指针,而*p是个值,所以B是错的
追问
不是可以char *s=“Hello”吗??
追答
char *s=“Hello”中s是个char*型的指针,"Hello"返回的是这个常量字符串的首地址,
所以char *s="Hello"没问题
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A:定义了一个char型“引用变量”a,a是*p的引用
B:指针s指向*p的地址,s是“指针的指针”,应该改成char *s=&p
B:指针s指向*p的地址,s是“指针的指针”,应该改成char *s=&p
追问
不是可以char *s=“Hello”吗??
追答
可以,但这样的话就是*s=*p,而s不等于p
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B,*P已经定义,所以在后面定义其他时,*P就是HELLO,而不是地址了,*S定义的是指针与他相等的就只有是地址。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询