A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yako 中级黑马   /  2015-11-28 23:55  /  1269 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

三级指针为什么要这样定义?
int a=0;
int *p=&a;
int **p1=&p;
int ***p2=&p1;
为什么不可以这样定义?
int a=0;
int *p=&a;
int *p1=&p;
int *p2=&p1;

6 个回复

倒序浏览
标准就是这样规定的
回复 使用道具 举报
规定就是如果指向一个指针,就要用二级指针.虽说都是变量都是普通地址没错,但是这么写并不好
回复 使用道具 举报
楼上大神可否帮忙解释下原理啊?我个人觉得第二种也有道理啊,不知道错在哪里了。
回复 使用道具 举报
第二种的定义中 P1只能存放 int类型 的变量地址。 而&p 是一个地址(类型) 不是int类型。所有p1 不能存放p的地址。
回复 使用道具 举报
*这是取值运算符,*p2只是取到的P1存的值,也就是P的地址,**P2取得值就是P存的值,也就是a的地址,***P2就是取得a存的值
回复 使用道具 举报
cube川 中级黑马 2015-11-30 18:07:13
7#
第二种有问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马