C语言中指针的指针简单理解

C语言中指针的指针简单理解。做下笔记,记录下学的成果。

定义

如果一个指针变量存放的又是另一个指针变量的地址,则称这个变量为指向指针的指针变量或指向指针的指针。

如下图所示:

指针的指针

其中a为int的变量,值为99。指针变量p1指向变量 a 的地址,值为 a 的内存地址(16进制)。指针变量p2为指向指针的指针,值为 p1 的内存地址。

实例代码

#include <stdio.h>

int main()
{
 int a = 99;
 int *p1 = &a;
 int **p2 = &p1;

 printf("a=%d, p1=%X, &p1=%X\n",a,p1,&p1);
 printf("**p2=%d, *p2=%X, p2=%X\n",**p2,*p2,p2);

 return 0;
}

打印结果如下:


a=99, p1=2C7B7A9C, &p1=2C7B7AA0

**p2=99, *p2=2C7B7A9C, p2=2C7B7AA0

从打印结果可以看到:

1、指针变量 p2 指向 p1 的内存地址。

2、*p2 表示 指针p1指向的变量a的内存地址。

3、**p2 表示 p1指向变量a的内存地址对应的变量值,即为99。

 

本条目发布于。属于C分类。作者是

关于莫飞

总有那么一件事值得你去坚持!一个有理想的人,这辈子未必会实现理想,但是他在追求理想的路上遇到的风景,这是没有理想的人到死也不曾有过的!

C语言中指针的指针简单理解》上有1条评论

发表评论

电子邮件地址不会被公开。