C++指针 char*p="123"; char*p1; p1=&p; 这里p1是地址,为什么不能指向p的地址呢

char*p="123";char*p1;p1=&p;这里p1是地址,为什么不能指向p的地址呢... char*p="123";
char*p1;
p1=&p;
这里p1是地址,为什么不能指向p的地址呢
展开
 我来答
tianyuwuse
2014-02-04 · TA获得超过1117个赞
知道小有建树答主
回答量:494
采纳率:100%
帮助的人:242万
展开全部
p1是指针,可以存放某一个变量的地址,但是又不能随便存放
每个指针变量在定义的时候都会有一个基类型说明,比如你的例子中的 char *p1; 表明p1的基类型为char,每个指针变量必须指向具有其基类型的存储单元,比如p1可以指向char型的存储单元。
而你所说的变量p的类型为 char *,也就是说它的基类型不是char,因此不能让p1指向p,而必须是char **p1=&p; 才可以,此时的p1 是二级指针。
char **p1你可以理解,p1为基类型为 char* 的指针变量,因为它的定义是(char *) *p1;
业秀竹q2
2014-02-04 · TA获得超过1091个赞
知道小有建树答主
回答量:648
采纳率:0%
帮助的人:552万
展开全部
因为p自己就是个指针,你要指向它要写指向指针的指针
char **p1=&p;
更多追问追答
追问
char*pt="123";
char*pt1=pt;
这里pt赋值给pt1是赋值内容为什么不是地址呢?
追答
这个赋值就是地址啊,pt1只是个指针,但是它吧“123”的地址给了pt1,所以pt1也能读取这个字符串,但是读的是一个地址的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xl35800
2014-02-04 · TA获得超过3487个赞
知道小有建树答主
回答量:1152
采纳率:74%
帮助的人:309万
展开全部
你为什么不用p1=p呢?
你肯定是混淆p当成数组了,如果char p[]=“123”,你可以用p1=&p
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式