当前位置: 首页 > wzjs >正文

北京网站优化wyhseo引流推广营销

北京网站优化wyhseo,引流推广营销,想给孩子找点题做 都有什么网站,苏州建设信息网C语言多级指针详解 - 通过实例理解一级、二级、三级指针 文章目录 C语言多级指针详解 - 通过实例理解一级、二级、三级指针引言一、示例代码二、指针基础回顾(先备知识)1.生活中的类比2.指针变量定义3.关键操作符4.解引用本质 三、多级指针的本质1.层级关…

C语言多级指针详解 - 通过实例理解一级、二级、三级指针


文章目录

  • C语言多级指针详解 - 通过实例理解一级、二级、三级指针
  • 引言
  • 一、示例代码
  • 二、指针基础回顾(先备知识)
    • 1.生活中的类比
    • 2.指针变量定义
    • 3.关键操作符
    • 4.解引用本质
  • 三、多级指针的本质
    • 1.层级关系解析
    • 2.递进式理解
  • 四、代码逐行解析
    • 1.变量定义阶段
    • 2. 建立指向关系
  • 五、解引用过程详解
    • 1. 三级指针修改值的过程
    • 2. 各层级访问对比
  • 读者思考


引言

指针是C语言中的重要概念,而多级指针(指向指针的指针)往往让初学者感到困惑。本文将通过一个完整的示例程序,帮助大家理解多级指针的工作原理。这对后面数据结构的学习很有用!


一、示例代码

#include <stdio.h>int main()
{
int a = 6; // 定义整型变量 a,并初始化为 6
int *p, **q, ***r; // 定义整型指针变量 p,二级指针变量 q,三级指针变量 r
p = &a;              // 将 p 指向 a 的地址
q = &p;              // 将 q 指向 p 的地址
r = &q;              // 将 r 指向 q 的地址printf("%d\n", p);   // 输出 p 的值,即 a 的地址
printf("%d\n", &p);  // 输出 p 的地址
printf("%d\n", *p);  // 输出 p 指向的值,即 a 的值
printf("%d\n", *q);  // 输出 q 指向的值,即 p 的值,即 a 的地址
printf("%d\n", **q); // 输出 q 指向的指针的值,即 p 指向的值,即 a 的值
printf("%d\n", r);   // 输出 r 的值,即 q 的地址
printf("%d\n", *r);  // 输出 r 指向的指针的值,即 q 的值,即 p 的地址
printf("%d\n", **r); // 输出 r 指向的指针的指针的值,即 q 指向的指针的值,即 p 指向的值,即 a 的地址
printf("%d\n", ***r);// 输出 r 指向的指针的指针的指针的值,即 q 指向的指针的指针的值,即 p 指向的指针的值,即 a 的值***r = 10;           // 将 p 指向的值,即 a 的值,修改为 10printf("%d\n", *p);  // 输出 p 指向的值,即 a 的值
printf("%d\n", a);   // 输出 a 的值
return 0;
}

运行结果:
6422036
6422024
6
6422036
6
6422016
6422024
6422036
6
10
10
下面开始解释

二、指针基础回顾(先备知识)

1.生活中的类比

把内存比作快递柜,每个柜子都有编号(地址)
变量是柜子里的物品,指针是记录柜子号的纸条
示例:int a = 42; 就像在200号柜子放了一个数字42

2.指针变量定义

int *p;  // 声明一个"整型快递柜号记录纸条"

3.关键操作符

& 取地址符:获取柜子号(p = &a)
*解引用符:根据纸条找柜子里的物品(*p)

4.解引用本质

在这里插入图片描述
解引用的本质解释:

  1. 解引用就是通过指针访问它所指向的内存地址中存储的值
  2. 使用 * 运算符来进行解引用操作
  3. 可以用解引用来读取或修改指向的变量的值

三、多级指针的本质

1.层级关系解析

在这里插入图片描述

2.递进式理解

int a = 6;      // 原始数据
int *p = &a;    // p保存a的地址(一级)
int **q = &p;   // q保存p的地址(二级)
int ***r = &q;  // r保存q的地址(三级)

在这里插入图片描述

四、代码逐行解析

1.变量定义阶段

int a = 6;
int *p, **q, ***r;
  • p:能存储普通整型变量地址
  • q:需要存储指针变量的地址
  • r:需要存储二级指针的地址

2. 建立指向关系

p = &a;  // p → a
q = &p;  // q → p
r = &q;  // r → q

在这里插入图片描述

五、解引用过程详解

1. 三级指针修改值的过程

***r = 10;

分步解析:

  1. r 存储的是q的地址
  2. *r 得到q的内容(即p的地址)
  3. **r 得到p的内容(即a的地址)
  4. ***r 最终操作a的内存空间

2. 各层级访问对比

在这里插入图片描述
这里就像《洋葱》
在这里插入图片描述
就像原本的值是6被修改后是10
初始值:6 → “我就像一颗洋葱 永远是配角戏”
修改后:10 → “你会发现 你会讶异 你是我最压抑 最深处的秘密”


读者思考

如果声明四级指针int ****s,应该如何初始化?
为什么说printf(“%d”, &a)和printf(“%d”, p)的输出可能相同?
尝试画出四级指针的内存指向关系图

http://www.dtcms.com/wzjs/247306.html

相关文章:

  • 一 建设网站前的市场分析海外市场推广做什么的
  • 网站建设平面要多少分辨率在线建站平台
  • 建设工程其它费计算网站有哪些网络推广平台
  • 北京网站建设q479185700棒自己在家做电商
  • 深圳家装设计公司排名榜站长工具 seo查询
  • 铜仁市住房和城乡建设部网站百度一下首页网址百度
  • 吴江建设银行网站湖南网站seo公司
  • 大学生帮别人做网站网站建设企业
  • 长沙网站备案index百度指数
  • wordpress固定链接设置.htmlseo关键词排名价格
  • 旅游电商网站开发如何进行网络营销策划
  • 珠海网站建设杰作科技推广引流哪个软件最好
  • html怎么做网站设计网站优化公司哪家效果好
  • 衡水提供网站制作公司报价有道搜索
  • 酒类网站建设方案百度app 浏览器
  • 武汉市做网站哪个平台推广效果好
  • 君临天下游戏网站开发者电商运营一天都干啥
  • 网站建设公司做销售好不好?seo长尾关键词
  • 石家庄城乡建设网站网站注册时间查询
  • 小公司做网站seo入门
  • 大兴网站设计合肥seo按天收费
  • 南昌网站设计公司网络推广的常用方法
  • 网站开发 源码最近军事新闻热点大事件
  • 成都网站建设麦格思承接网络推广外包业务
  • 广州专业做网站公司有哪些江苏网站建设制作
  • 镇江seo网站优化百度网盘搜索神器
  • wordpress tag 插件网站应该如何进行优化
  • 自己做的网站怎么上传文章seo网络排名优化技巧
  • 单页面网站复制太原做网站哪家好
  • 有什么好的免费网站做教育宣传汕头网站建设优化