指针的指针?

前言:  

指针的初识点击移步

双重指针:

  指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链。通常,一个指针包含一个变量的地址。当我们定义一个指向指针的指针时,第一个指针包含了第二个指针的地址,第二个指针指向包含实际值的位置。

直接上脚本

#include <stdio.h>

int main ()
{
int a = 10;
int *p,**pt; p = &a;
pt = &p; printf("变量a的内存地址:0x%X\n",&a);
printf("变量a存储的值:%d\n",a);
printf("指针p的内存地址:0x%X\n",&p);
printf("指针p存储的地址:0x%X\n",p);
printf("指针pt的内存地址:0x%X\n",&pt);
printf("指针pt存储的地址:0x%X\n",pt);
}

执行输出

变量a的内存地址:0x24FE4C
变量a存储的值:10
指针p的内存地址:0x24FE40
指针p存储的地址:0x24FE4C
指针pt的内存地址:0x24FE38
指针pt存储的地址:0x24FE40

由输出可见,双重指针pt存储的地址为指针p的内存地址 即pt = &p ; 单指针之前已经总结过,在此不再赘述;那么*pt,**pt又为何值与指针p的关系是什么?

#include <stdio.h>

int main ()
{
int a = 10;
int *p,**pt; p = &a;
pt = &p; printf("变量a的内存地址:0x%X\n",&a);
printf("变量a存储的值:%d\n",a);
printf("指针p的内存地址:0x%X\n",&p);
printf("指针p存储的地址:0x%X\n",p);
printf("指针pt的内存地址:0x%X\n",&pt);
printf("指针pt存储的地址:0x%X\n",pt);
printf("指针*pt是什么:0x%X\n",*pt);
printf("指针**pt是什么:%d\n",**pt);
} //变量a的内存地址:0x24FE4C
//变量a存储的值:10
//指针p的内存地址:0x24FE40
//指针p存储的地址:0x24FE4C
//指针pt的内存地址:0x24FE38
//指针pt存储的地址:0x24FE40
//指针*pt是什么:0x24FE4C
//指针**pt是什么:10

等价关系 *pt = p ,**pt = p ;

绘制关系图如下:

【C语言】崩溃的双重指针的更多相关文章

  1. 【C语言】学不会的指针

    指针 前言: 指针是C语言程序的核心,刚开始学指针,嗯....这样呀,貌似不难呀:之后开始用指针,&p,p,*p,**p,这些指针在用的时候,额.....什么东东?每次都要想半天,特别是遇到双 ...

  2. Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针

    Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针   1.1. java方法引用(Method References) 与c#委托与脚本语言js ...

  3. 【转载】C/C++语言void及void指针深层探索

    C/C++语言void及void指针深层探索 1.概述许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.本文将对void关键字的深刻含义进行解说,并详述vo ...

  4. C++ 二维数组(双重指针作为函数参数)

    本文的学习内容参考:http://blog.csdn.net/yunyun1886358/article/details/5659851 http://blog.csdn.net/xudongdong ...

  5. 函数指针玩得不熟,就不要自称为C语言高手(函数指针是解耦对象关系的最佳利器,还有signal)

    记得刚开始工作时,一位高手告诉我说,longjmp和setjmp玩得不熟,就不要自称为C语言高手.当时我半信半疑,为了让自己向高手方向迈进,还是花了一点时间去学习longjmp和setjmp的用法.后 ...

  6. C语言中的函数指针

    C语言中的函数指针 函数指针的概念:   函数指针是一个指向位于代码段的函数代码的指针. 函数指针的使用: #include<stdio.h> typedef struct (*fun_t ...

  7. C语言精要总结-指针系列(一)

    考虑到指针内容繁多,这里将指针作为一个系列,从简入繁,一点一点深挖并掌握这C语言的精华.初步计划如下 此文为指针系列第一篇: C语言精要总结-指针系列(一) 内存与地址 我们可以把内存看做一排连续的房 ...

  8. C语言精要总结-指针系列(二)

    此文为指针系列第二篇: C语言精要总结-指针系列(一) C语言精要总结-指针系列(二) 指针运算 前面提到过指针的解引用运算,除此之外,指针还能进行部分算数运算.关系运算 指针能进行的有意义的算术运算 ...

  9. C语言第八讲,指针*

    C语言第八讲,指针* 一丶简单理解指针 说到指针,很多人都说是C语言的重点. 也说是C语言的难点. 其实指针并不是难.而是很多人搞不清地址 和 值.以及指针类型. 为什么这样说. 假设有两个变量,如下 ...

随机推荐

  1. Java实现PV操作 | 生产者与消费者

    导语 在学习操作系统的过程中,PV操作是很重要的一个环节.然而面对书本上枯燥的代码,每一个爱好技术的人总是想能亲自去实现.现在我要推出一个专题,专门讲述如何用Java实现PV操作,让操作系统背后的逻辑 ...

  2. 浅谈LCA

    目录 什么是LCA 倍增求LCA dfs bfs 树剖求LCA 什么是LCA LCA就是最近公共祖先 对于有根树\(Tree\)的两个结点\(u.v\),最近公共祖先\(LCA(T,u,v)\)表示一 ...

  3. stack的简单用法总结

    stack中常见方法 top():返回一个栈顶元素的引用,类型为 T&.如果栈为空,返回值未定义. push(const T& obj):可以将对象副本压入栈顶.这是通过调用底层容器的 ...

  4. 你知道多少this,new,bind,call,apply?那我告诉你

    那么什么是this,new,bind,call,apply呢?这些你都用过吗?掌握这些内容都是基础中的基础了.如果你不了解,那还不赶快去复习复习,上网查阅资料啥的! 通过call,apply,bind ...

  5. shell 单引号以及双引号

    #!/bin/bash a= echo '$a' echo "$a" your_name='runoob' str="Hello, I know you are \&qu ...

  6. 《JAVA程序设计》_第十一周学习总结

    一.学习内容 13.1 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL创建对象的应用程序称作客户端程序. 一个URL对象包含的三个基本信息:协 ...

  7. [技术博客] gitlab快速部署流程

    这里直接贴出少昂的个人博客链接:https://www.cnblogs.com/HansBug/p/9813627.html

  8. Django实现自动发布(1数据模型)

    公司成立之初,业务量较小,一个程序包揽了所有的业务逻辑,此时服务器数量少,上线简单,基本开发-测试-上线都是由开发人员完成. 随着业务量逐渐上升,功能增多,代码量增大,而单一功能上线需要重新编译整个程 ...

  9. js中[object Object]与object.prototype.toString.call()

    最近在用node读取文件中的json数据后,用JSON.parse()转成了json,然后响应数据传给前端,发现输出值object对象时显示[object object],在这里我们来看一下他的具体意 ...

  10. zz 勵志貼,成功是努力加对的方向

    5-6年工作经验程序员初进大厂,如何适应工作? 李苦李 李苦李 ​ 华为 架构师 318 人赞同了该回答 泻药! 与题主背景非常相似. 本人毕业8年+,普通二本,学历不突出,非计算机专业. 唯一不同的 ...