请读者把以下代码复制到编译器里面,再看代码注释理解

#include<stdio.h>
int main()
{int a;int *p1,**p2;//先定义三个变量 a=1;printf("a的地址是不会变的;%d\n",&a);printf("p1的地址是不会变的:%d\n",&p1); printf("p2的地址是不会变的:%d\n",&p2);printf("全部未指向时:a=%d ,p1=%d(随机数),p2=%d(随机数)\n",a,p1,p2);p1=&a;//将a的地址赋给p1,p1内容是a的地址,在前面加上* 即 *p1等于a的值,为1 printf("a=%d,(已将a的地址赋给p1的内容,即p1=&a)*p1=%d,p2=%d\n",a,*p1,p2); p2=&p1;     printf("a=%d,(已将a的地址赋给p1的,即p1=&a)*p1=%d,(已将p1的地址赋给p2的内容,即p1=&a)p2=%d\n",a,*p1,**p2); //此时仔细观察发现**p2的值和*p1的值和a的值是一样的,都是1;//&+1个变量 是取这个变量的具体地址的符号,*+1个具体地址 是取这个具体地址所存储的内容,//* 和&互为可逆运算 即 *&a 等价于 a的值 //重点:我的理解是,若在某个&p1地址前加上*号,并且这个变量p1内容是另一个变量a的地址,则*p1的值是 变量a的地址 } 

以下是两种等价的表示方法

#include<stdio.h>
int main()
{int a=1,*p1,**p2;p1=&a;p2=&p1;printf("a=%d,*p1=%d,**p2=%d",a,*p1,**p2);} 
#include<stdio.h>
int main()
{int a=1,*p1=&a,**p2=&p1;printf("a=%d,*p1=%d,**p2=%d",a,*p1,**p2);} 

真诚地感谢读者,你的点赞关注是对我最大的支持谢谢。

指针以及二重指针的理解相关推荐

  1. C语言指针(二重指针)

    1.二重指针 1.1.二重指针与普通一重指针的区别 (1)本质上来说,二重指针和一重指针的本质都是指针变量,指针变量的本质就是变量. (2)一重指针变量和二重指针变量本身都占4字节内存空间, 1.2. ...

  2. 如何理解CE中指针,多重指针,偏移的概念

    今日重新回顾了一下以前使用过的ce修改器,在学过C语言之后感觉概念通透了许多. 为什么要用指针 CE寻找到的一些地址往往是一个动态地址,它是动态生成的(例如malloc函数),每次重启游戏后,它都会随 ...

  3. 深入理解指针以及二级指针(指针的指针)

    前言:本文将讲解指针的定义.指针变量和普通变量的本质区别.一级指针和二级指针的关系以及如何通过二级指针修改一级指针所指向的内存.文末还附加了两个实例,帮助读者加深对二级指针的理解.本文试图通过图表的方 ...

  4. 用指针的观点来深入理解dup和dup2的用法

    用指针的观点来深入理解dup和dup2的用法 作者:ejian 2007-09-17 网上有很多资料详细讲解了dup和dup2的用法,有讲得不错的,但总感觉理解起来还是有点困难,通过实践,我发现一种C ...

  5. 关于指针的一点小的理解

    今天看到了c++的指针,按照上面敲了一个简单的例子,如下: int inval = 1024; int *pi = &inval; //int *ppi = pi; //ppi与pi都指向in ...

  6. 深入理解C指针之三:指针和函数

    深入理解C指针之三:指针和函数 原文:深入理解C指针之三:指针和函数 理解函数和指针的结合使用,需要理解程序栈.大部分现代的块结构语言,比如C,都用到了程序栈来支持函数的运行.调用函数时,会创建函数的 ...

  7. 深入理解C指针之四:指针和数组

    深入理解C指针之四:指针和数组 原文:深入理解C指针之四:指针和数组 数组是C内建的基本数据结构,数组表示法和指针表示法紧密关联.一种常见的错误认识是数组和指针完全可以互换,尽管数组名字有时可以当做指 ...

  8. 指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为参数,泛型函数

     1.指针数组 数组里面的每个元素都是指针. 指针数组的案例如下: 易犯错误: 2.数组指针 归根结底还是指针,只是取*的时候能够取出一整个数组出来. 数组指针:(一个指针指向了数组,一般和二维数 ...

  9. 指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为參数,泛型函数...

     1.指针数组 数组里面的每一个元素都是指针. 指针数组的案比例如以下: 易犯错误: 2.数组指针 归根结底还是指针,仅仅是取*的时候可以取出一整个数组出来. 数组指针:(一个指针指向了数组.一般 ...

最新文章

  1. Matlab 区域扫描,30+行Matlab代码实现文件扫描
  2. memcache 启动 储存原理 集群
  3. 《英语语法新思维初级教程》学习笔记(二)名词
  4. 详解JRE和JDK的区别
  5. QUIC实战(二) AWS 搭建nginx(http3.0) + upsync + consul(server-client模式) 集群
  6. 更新系统时跳过某个软件包
  7. ci/cd heroku_在Heroku上部署Dash或Flask Web应用程序。 简易CI / CD。
  8. 计算机基础ABCDEF,计算机应用基础_在线作业ABCDEF.docx
  9. Vue 单文件中的数据传递
  10. ssh secure shell client 保存密码_著名的SSH协议
  11. CSS定位设置实例——盒子的定位
  12. postgresql搭建从库
  13. 语音对话机器人,百行Python代码就能轻松实现
  14. 【软考】系统集成项目管理工程师(八)项目进度管理
  15. Assassin暗杀者-自用短小精悍的webshell管理工具分享
  16. JDK1.8_API(不能用 你来看砍我)
  17. Triangle程序编译
  18. 天干地支与阴阳五行的关系
  19. 【Kubernetes/docker】生成docker镜像推送到hub并在Kubernetes部署应用-20220407
  20. 妻子决定你未来的事业高度

热门文章

  1. python必背代码-Python小白必备的8个最常用的内置函数(推荐)
  2. @JsonSerialize的使用
  3. 华为鸿蒙系统英语报纸_“鸿蒙”系统的英文名叫这个!华为注册的这些《山海经》神兽都该怎么翻译?...
  4. python中堆排序_Python实现堆排序的方法详解
  5. input和output哪个是充电_html中input和output的区别?糊涂了搞不清了。哪位给解说下...
  6. 前端工程化(Vue-cli3和Element-ui)
  7. Hbuilder 屏幕放大缩小
  8. mysql错误诊断_MySQL Server无法启动错误诊断一则
  9. 【二分法】剑指offer:二维数组中的查找
  10. 数据结构笔记:二叉树的构造(根据遍历顺序构造二叉树)