c++ 指针的小问题

intk=1;int*p2=&k;int**ppi;是指向指针的指针,那么*ppi与ppi是什么?哪个是地址.如果是要把*p2的地址赋给**ppi,是int**ppi=&... int k=1;
int *p2=&k;
int **ppi;是指向指针的指针,那么*ppi与ppi是什么?哪个是地址.
如果是要把*p2的地址赋给**ppi,是int**ppi=&p2?为什么?

定义是否要多加个解引用操作符来说明类型?比如说定义的时候:int *p2;其中*p2是地址,但是使用的时候p2是地址,*p2是派生量.
int **ppi;使用的时候,**ppi是什么?*ppi和ppi又是什么?哪个是地址?

最好能回答详细点的,我就这么多分了.希望解答下,谢谢.
展开
 我来答
街角哦祝福
2010-11-20 · TA获得超过534个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:360万
展开全部
首先要清楚,指针本省也是一种变量,故它本身有地址值
*ppi为它所指向的指针的地址值,ppi是变量ppi自身的地址值
int**ppi=&p2 因为*ppi是二重指针,它要指向一个地址,所以要把一个指针自身的地址值赋给它这就像就像一重指针(p2)一样,他指向一个整形变量,故要把整形变量的地址值赋给它

"int *p2;其中*p2是地址" *p2不是地址,这里是定义,*只是一个指针的标志符,不是取地址符,所以依然是p2为地址
对与int **ppi;,这里定义时说明它是一个二重指针,但赋给它的值要求依然是一个一重指针的地址; 它(**ppi)使用时,表示的是变量的值(及它所指向的一重指针所指向的变量),这里为k的值; 而*ppi是一重指针(这里为p2)的地址值,ppi则为ppi它自己的地址值
leafjungle
2010-11-20 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:105万
展开全部
int* p2; 指p2装的是地址,*p2是取p2所指的地址里的内容。
int* p2;你可以认为p2是一个一维int数组的开始地址。
int** p2,你可以认为p2是一个二维int数组的开始地址。

int* ppi中,ppi指的是一个地址,*ppi指的是ppi装的那个地址的内容(这个内容也是个地址)

如果你理解了内存分配与寻址,更好理解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式