二级指针使用

在c和c++中如果我们想使用指针指向或者使用指针变量存放另外一个指针的地址,最容易想到的是再定义一个指针来存放:

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

                   int *p1 = &p;  // 这种定义方法理论上是可行的,但是c和c++中是不允许的,存放指针变量

                                            的地址必须使用二级指针。 

                   int **p1 = &p; // 这种定义是正确的。 

有时候会有一下代码:  

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

以上代码,a中存放10,p中存放10的地址,p1存放p的地址(p中放着10的地址)

int *p3 = *p1; 

以上代码的含义: 定义一个一级指针(存放一个数据的地址)p3,  我们使用*p1获取p1指向地址所存放的值(即p中存放的值),p中存放的是一个数据的地址,并不是指针的地址,所以可以赋值给一级指针。 

二级指针的访问:  

1. int **p = &a;   int *tmp = *p;  *tmp;   

2. *(*p)  ,**p 都可以,同级运算符从右向左结合。

 

最近更新

  1. TCP协议是安全的吗?

    2023-12-24 07:18:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-24 07:18:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-24 07:18:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-24 07:18:03       18 阅读

热门阅读

  1. mybatisx 插件模板

    2023-12-24 07:18:03       43 阅读
  2. 第6章 用户输入和while循环

    2023-12-24 07:18:03       41 阅读
  3. Hadoop

    Hadoop

    2023-12-24 07:18:03      40 阅读
  4. Python中使用YAML文件进行配置文件管理

    2023-12-24 07:18:03       42 阅读