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

指针与数组:高效访问的秘诀

定义指针变量指向数组

在C语言中,指针变量可以指向数组的首地址,通过指针可以访问和操作数组元素。以下是定义指针变量指向数组的方法:

声明指针并指向数组

intarr[5]={1,2,3,4,5};int*ptr=arr;// 指针指向数组首地址

通过指针访问数组元素

printf("%d",*ptr);// 输出第一个元素(1)printf("%d",*(ptr+1));// 输出第二个元素(2)

指针与数组名的关系
数组名arr本身是一个指向数组首元素的常量指针,因此可以直接赋值给指针变量。以下两种写法等效:

int*ptr=arr;int*ptr=&arr[0];// 显式获取首元素地址

遍历数组的指针操作

for(inti=0;i<5;i++){printf("%d ",*(ptr+i));// 通过指针偏移访问元素}

动态分配的数组与指针

若数组是动态分配的,指针可以直接指向堆内存中的数组:

int*dynamic_arr=malloc(5*sizeof(int));// 动态分配数组dynamic_arr[0]=10;// 通过指针访问动态数组free(dynamic_arr);// 释放内存

指针与多维数组

对于多维数组,指针需要匹配数组的维度类型。例如二维数组:

intmatrix[2][3]={{1,2,3},{4,5,6}};int(*ptr)[3]=matrix;// 指向包含3个元素的数组的指针printf("%d",ptr[1][2]);// 输出第二行第三列元素(6)

注意事项

  • 指针类型必须与数组元素类型一致(如int数组对应int *)。
  • 指针算术运算(如ptr++)会按元素大小移动地址。
  • 数组名是常量指针,不能修改其指向(如arr++非法)。
http://www.jsqmd.com/news/470296/

相关文章:

  • 918. 环形子数组的最大和
  • JavaScript性能优化实战孟盎
  • 筑牢 AI Agent 关键业务落地的生命线:数据治理与 AI 治理的全体系解析与落地指南
  • 字节一面---客户端开发实习生
  • JavaScript性能优化实战郊蒲
  • 2026年数智项目管理品牌格局观察:平台化与业财融合趋势
  • 2026年四川达州渠县TOP1电器门店:品类超120种堪称全城最全?
  • 比赛吗,就应该有比赛的样子。规则不能够太容易了
  • 跟我学C++中级篇—悲观和乐观锁
  • OpenClaw 生态网站导航推荐
  • Python电商全维数据智能分析与随机森林销量预测系统 Django 可视化 机器学习 爬虫 大数据 大模型 agent 深度学习 计算机毕业设计源码(建议收藏)✅
  • Ruby 类案例
  • Windows实操
  • 嘎嘎降AI为什么能支持9大检测平台?多平台兼容的秘密
  • 双系统安装
  • 基于 PLC 的工业锅炉过程控制程序设计及其仿真
  • 基于离散韦格纳分布(DWVD)结合卷积神经网络(CNN)与长短期记忆网络(LSTM)的故障诊断研究附Matlab代码
  • 2026年口碑好的电动喷泵推进器厂家推荐:东莞冲浪板电动喷泵/卡丁船电动喷泵推进器行业内口碑厂家推荐 - 行业平台推荐
  • OpenClaw 入门教程 | OpenClaw教程 | 第1篇
  • 673. 最长递增子序列的个数(序列dp)
  • 华沙理工大学突破性发现:让音乐生成变得可控
  • 2026年质量好的藤椒花椒油品牌推荐:四川花椒油/四川藤椒花椒油/四川无添加花椒油厂家推荐参考 - 行业平台推荐
  • JAVA开发Drools规则引擎使用
  • xxxxxxxxx
  • 2026年质量好的桥架厂家推荐:镀锌桥架厂家选购参考汇总 - 品牌宣传支持者
  • 最基础的 eBPF 示例程序 - Hello World
  • 机器人(AGV\AMR,机器狗)自动乘梯(梯控)开门(门禁又称为门控)还能加装人脸二维码刷卡识别吗?智能梯控系统通过统一主板实现电梯、门禁等设备的高效联动,采用模块化设计与物理逻辑隔离,确保安全与高效
  • 2026年知名的药厂气动物流传输系统品牌推荐:畜牧业气动物流传输系统/大连医用气动物流传输系统厂家推荐与采购指南 - 品牌宣传支持者
  • Kali与渗透测试基础
  • 2026年新疆栢顿沙发品牌推荐:栢顿家居/栢顿家居餐厅家具厂家汇总与采购指南 - 品牌宣传支持者