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

C52-二级指针

一 二级(有多级)指针的基本语法

  1. 概念:二级指针是指向指针的指针,用于存储指针变量的地址。
  2. 二级指针的定义:二级指针的类型为 int **char **
  3. 二级指针的解引用:解引一次得到一级指针的地址,解引两次得到数据本身

二 示例

  • 代码示例:
#include <stdio.h>
int main()
{int data=10;int *ptr1=&data;int **ptr2=&ptr1;printf("data的内存地址:%p\n",&data);printf("一级指针的内存地址:%p\n",&ptr1);printf("二级指针的地址:%p\n\n",&ptr2);printf("通过变量名直接访问数据:%d\n",data);printf("测试解引一级指针:%d\n",*ptr1);printf("测试解引一次二级指针:%d\n",*ptr2);printf("以十进制整数输出data的内存地址:%d\n",&data);printf("测试解引两次二级指针:%d\n",**ptr2);return 0;
}
  • 成果展示:

image-20250527193447729

  • 报错与总结:

​ 定义二级指针时只写了一个*号image-20250527192603029

三 二级指针实战

  • 代码示例:
#include <stdio.h>//封装函数:通过二级指针来存储二维数组里的所需求的一维数组的位置
void GetPositionPerson(int position,int (*pstudent)[4],int **pposition)
{*pposition=(int *)(pstudent+position-1);
}int main()
{int scores[3][4]={{67,68,69,71},{72,74,75,76},{72,61,81,60}};int *pposition;int position;printf("请输入你所查询的学生学号:1,2,3\n");scanf("%d",&position);GetPositionPerson(position,scores,&pposition);for(int i=0;i<4;i++){printf("%d ",*pposition++);}return 0;
}
  • 成果展示:

image-20250527195404588

四 二级指针与数组的避坑指南

**二级指针不能简单的指向二维数组 **

  • Test for “二级指针=二维数组”
  • 代码示例:
#include <stdio.h>
int main()
{int scores[3][4]={{67,68,69,71},{72,74,75,76},{72,61,81,60}};int **ptr=scores;printf("scores的内存地址:%p\n",&scores);printf("ptr的内存地址:%p\n",&ptr);printf("*ptr的内存地址:%p\n\n",*ptr);return 0;
}
  • 测试结果:

image-20250527201113151

五 各种类型指针的定义

image-20250527201436851

http://www.xdnf.cn/news/684181.html

相关文章:

  • proteus8.4 安装包下载地址与安装教程
  • 开源项目asp本地编译安装教程(ubuntu操作系统)
  • 为什么MCP可以适配不同LLM
  • 《CF525E Anya 和立方体》
  • 人工智能文科能学吗?
  • java每日精进 5.27【分布式锁】
  • 经典排序算法合集(下)
  • 【调试】【原理理解】ldm 和 diffusers 库的区别
  • 自动驾驶中的博弈式交互规划:从理论到实践
  • droidcam ivcam 电脑访问不到地址解决办法 把网线从猫插到路由上
  • 1. 编程语言进化史与JavaScript
  • 数据结构期末模拟试卷
  • app获取相册权限是否意味着所有相片都可随时读取?
  • 智能防护实战:从攻击成本看企业安全降本增效
  • Jpa 删除之@Version注解的实体类无法删除的问题
  • 远程办公如何实现零监控?深度拆解“吱吱”不会被监控的通讯办公软件
  • 在RK3588上实现YOLOv8n高效推理:从模型优化到GPU加速后处理全解析
  • 电机控制杂谈(26)——电机驱动系统的编码器的测速噪声
  • RK3568DAYU开发板-驱动平台驱动案例--PWM
  • 【Linux】(1)—进程概念-①冯诺依曼体系结构
  • 想查看或修改 MinIO 桶的匿名访问权限(public/private/custom)
  • java基础学习(十八)
  • 大模型微调(面经总结)
  • 代码风格指南
  • 聚焦北京央美备考画室:探寻实力之巅
  • 码蹄集——圆周率II、三个非负整数
  • PCB设计自检表
  • 基于心理健康与数字行为数据的多维度分析
  • JAVA运算符详解
  • Oracle向PG转移建议以及注意点