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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sen 中级黑马   /  2014-4-16 14:11  /  1376 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 sen 于 2014-5-20 12:00 编辑

int a =10;
int *p=&a;

视屏中的得是指针指向指针是: int **pp= &p;
那如果我再定义一个数据 int *zhizhen= &p;这样的话与int **pp= &p;的作用是一样的吗?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

4 个回复

正序浏览
沙发和板凳都讲得好完美,估计你懂了就不给你解释了
回复 使用道具 举报
你这个是错误的;
int a =10;
int *p=&a;
这个代码表明 指针p指向变量a的地址

int **pp=&p
这个代表指向指针的指针pp指向指针p的地址

int *zhizhen=&p
这个代表指针zhizhen只是指向指针p的变量的地址,注意是变量地址,并不是指针的地址。和 int *p=&a 一样的。

有个方法就是,指向变量的指针是一个*,指向指针的指针是两个*,指向指针的指针的指针就是三个* 以此类推。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
看你的代码:

  1. int a =10;
  2. int *p=&a;
复制代码

其中 p为指针类型,
而下面的:
  1. int **pp= &p;
复制代码

是指向指针类型变量的指针。
而下面的代码:
  1. int *zhizhen= &p
复制代码

是错误的,因为 int *zhizhen  其实和第二行的 int *p  是一模一样的。也是只能指向int型变量的地址。

其实你应该这么理解:
要想定义一个指向一个类型变量的指针变量,你就在要指向的变量的类型后面添加*号,这样定义。
例如: int *p;
这个p是int * 类型。即指向整型变量的指针类型。你要想在定义一个指针指向 p,
那就将p 的类型拿出来-----》int *    在这个类型后面加上 *
即: int **   ,然后用这个定义变量------》  int **PP;  

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马