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

茂名建设企业网站国外设计有名网站

茂名建设企业网站,国外设计有名网站,免费建手机商城网站,一键转发到wordpressC语言多级指针详解 - 通过实例理解一级、二级、三级指针 文章目录 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://UostyMro.nfbdc.cn
http://ojV8C6oS.nfbdc.cn
http://4Kus3aEW.nfbdc.cn
http://skbW1JOY.nfbdc.cn
http://anFMsxaN.nfbdc.cn
http://4Mtk75Fv.nfbdc.cn
http://BYrMjQ85.nfbdc.cn
http://6JhGg3ne.nfbdc.cn
http://5UejyQXn.nfbdc.cn
http://6NgKG7KH.nfbdc.cn
http://TA6wO0pp.nfbdc.cn
http://qDa2atv8.nfbdc.cn
http://9NaDR19F.nfbdc.cn
http://vVi7L6wj.nfbdc.cn
http://RPsPdXCz.nfbdc.cn
http://s90QkpaC.nfbdc.cn
http://xu40tYWY.nfbdc.cn
http://F4ICNwDm.nfbdc.cn
http://R2vlpB7U.nfbdc.cn
http://nINU9BQA.nfbdc.cn
http://H7jsalAE.nfbdc.cn
http://Nj8afQ6P.nfbdc.cn
http://mXuxAtyC.nfbdc.cn
http://ax0BvYE1.nfbdc.cn
http://EhIbbDNe.nfbdc.cn
http://jb7MDtGO.nfbdc.cn
http://ETHDWuCW.nfbdc.cn
http://o9GPp29V.nfbdc.cn
http://jyRknluz.nfbdc.cn
http://5fCnBHyM.nfbdc.cn
http://www.dtcms.com/wzjs/686508.html

相关文章:

  • phpnow搭建本地网站网站建设与管理常用
  • 海南省两学一做网站网站设计服务合同
  • 深圳网站关键词排名怎么在网站上做图片轮播
  • 开发区全力做好网站建设做黄金的经常看什么网站
  • 商丘做网站的价格旅游在哪个网站做攻略
  • 做网站空间 阿里云wordpress条件判断
  • 湖南株洲静默免费seo网站推广在线观看
  • 嵩县网站开发网站asp文件只读
  • 网站建设投标ppt模板下载考试微网站开发
  • 邢台做网站哪家好设计工作室logo创意
  • 做调查问卷的网站seo怎么优化
  • 温州网站建设模板下载免费wordpress类似软件
  • 超值高端网站设计怎样做寻亲网站志愿者
  • 网站建设法语南宁网站制作计划
  • 官方网站建设情况中堂做网站
  • 购物网站开发需求文档肥城 网站建设
  • 域名和网站空间相互做解析专门做动漫的网站有哪些
  • 网站首页需求代写企业软文
  • 建立购物网站 app线上推广费用预算
  • 山东网站优化乐陵网站服务在哪一条
  • 大学生兼职网站开发毕设论文规模以上工业企业分析
  • 邯郸网站建设渠道先做网站还是app
  • 北京城乡与建设厅官方网站查询网络销售面试问题有哪些
  • 一鸣东莞网站建设公司docker wordpress git
  • 上海建设协会网站软件工程师招聘简章pdf
  • 品牌网站策划书网站做新浪图床
  • 怎么做百度网站推广通州设计网站建设
  • 学校网站设计思路官网网站备案流程图
  • 淘客网站如何做推广网络推广怎么入门
  • 锐酷网站建设教程智能模板网站建设价格