先说结论
对一级指针取地址运算就是就相当于二级指针

#include<stdio.h>
void func(int** a, int** b)
{static int x = 100;static int y = 200;*a = &x;*b = &y;
}
int main()
{int* a = NULL;int* b = NULL;func(&a, &b);if (a != NULL && b != NULL)printf("a=%d b=%d\n", *a, *b);return 0;
}

分析一下代码运行过程

首先代码中main函数声明了两个一级指针a和b,在调用函数fun的时候,对一级指针取地址运算,生成两个二级指针实参,也验证了定义函数中的形参类型;

实参传入之后,对传入参数取值运算,也就是将&a,&b二级指针降为一级指针,同时对x,y取值运算生成x,y的一级指针,两边指针类型一致进行赋值运算(注意定义函数中的是形参,与实参无关,二者相互独立)

将x,y的地址赋给a,b的一级指针之后,再对一级指针a取值运算(*a),就可以顺利得到x,y的值了;

本文仅用于帮助理解指针中的一些问题,有不妥请各位大佬多多指出。

对指针变量取地址意义相关推荐

  1. 对指针变量取地址_C语言指针简介(amp;和*运算符)

    取地址符(&) 和  取值符(*) (1)& 运算符 :用于取一个对象的地址 例如:int *p;    p = &c;    将c的地址赋值给指针变量p,我们称p为 &quo ...

  2. C语言中 指针变量 取地址符的用法 *指针变量名的用法

    文章目录 总结 Intro Code 图示 总结 众所周知,内存可以看成一个一个相邻的格子(类比Excel),而数据就存储于这些格子之中(size大的变量占用格子数多,size小就占用小).而每个格子 ...

  3. 指针(*)、取地址()、解引用(*)与引用()

    指针(*).取地址(&).解引用(*)与引用(&) C++ 提供了两种指针运算符,一种是取地址运算符 &,一种是间接寻址运算符 *. 指针是一个包含了另一个变量地址的变量,您可 ...

  4. 一、初级篇——指针(*)、取地址()、解引用(*)与引用()的区别

    1. 初步了解--指针与取地址 先看程序: #include<stdio.h>int main(void) {int num = 7;int *p = #//初始化指针,也可以写作int* ...

  5. 寄存器变量取地址的问题

    <c++ primer plus>一书中在描述寄存器变量时,这样写道: 使用关键字register提醒寄存器,通过使用CPU寄存器,而不是堆栈来处理特定的变量,从而提供对变量的快速访问. ...

  6. C语言加取址符的作用,C语言中指针和取地址符的关系

    一 概念定义: 严格说起来,应该这么讲:指针存的是地址,而&运算符是取变量的地址. 指针原理: 其实计算机中的内存就像一个个抽屉(一兆内存就相当于1百万个抽屉),每个抽屉都有一个编号,用于存放 ...

  7. c语言地址符作用,C语言中指针和取地址符的关系

    一 概念定义: 严格说起来,应该这么讲:指针存的是地址,而&运算符是取变量的地址. 指针原理: 其实计算机中的内存就像一个个抽屉(一兆内存就相当于1百万个抽屉),每个抽屉都有一个编号,用于存放 ...

  8. C++ 指针与取地址

    知识点小结 C++的指针和引用因为涉及到地址和地址当中的存储内容,所以比较容易混淆.首先需要注意的是,指针和引用存放的都是被引用对象的地址!地址!地址!比如对于指针,当我们定义一个指针p,比如说int ...

  9. STM32 存在字节对齐指针变量的地址都必须是4的倍数

     A: Write_N_4Byte_flash(FLASH_APP1_ADDR,(uint32_t*)(valid_data+8),len);    B:Write_N_4Byte_flash(FLA ...

最新文章

  1. ASP网络编程从入门到精通 下载
  2. ElasticSearch的基本原理与用法
  3. openssl生成rsa密钥对和密钥格式转换
  4. 学python编脚本_python 学习写脚本
  5. 代挂系统去授权, 支持燃鹅代抽,安全无后门
  6. 重磅 CV、NLP 算法赛,科大讯飞2020 A.I.开发者大赛正式启动!
  7. java tomcat 日志_java – 访问Tomcat中的详细日志
  8. 从操作系统内核看设计模式--linux内核的facade模式
  9. VSS控制存储过程,及其asp.net的远程调试
  10. Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
  11. linux 内网gcc版本安装,Linux 内网环境安装gcc
  12. 使用数据库有什么好处?
  13. 内存卡格式化的原因有哪些 内存卡格式化怎么恢复
  14. python批量拷贝数据脚本_使用python来玩转ensp~3-写个批量备份配置文件脚本
  15. PHP出现中文乱码的解决方法
  16. Java 中多态的概念以及前提条件
  17. 2022-2028全球细胞和基因治疗制造服务行业调研及趋势分析报告
  18. 转 GitHub上史上最全的Android开源项目分类汇总
  19. c++:利用socket基于TPC/IP实现通信 在线聊天
  20. 视频博主都在用的 音频素材网,免费还可商用

热门文章

  1. 疯狂天才乔治·霍兹:17岁黑掉苹果,22岁搞垮索尼,还是特斯拉、谷歌最可怕的对手!
  2. 嵌入式系统工程师 的职位要求
  3. 电信4G添加ctlte接入点提高网速
  4. 这车模,就一个字:小巧灵动
  5. android compose webview视频播放横竖屏切换
  6. 免激活Vista并合法使用1年的方法
  7. UWB室内高精度定位在物联网的“C”位
  8. 从Python爬虫小白进阶数据分析大神,必看的10本书
  9. python实验九答案_Python程序设计实验报告(九)
  10. delphi bpl插件系统开发