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

【时时三省】(C语言基础)多维数组名作函数参数

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

多维数组元素可以作函数参数,这点与前述的情况类似。

可以用多维数组名作为函数的实参和形参,在被调用函数中对形参数组定义时可以指定每一维的大小,也可以省略第一维的大小说明。例如:

int array[3][10];

int array[][10];

二者都合法而且等价。但是不能把第2维以及其他高维的大小说明省略。如下面的定义是不合法的:

int array [ ][ ];

这是为什么呢?前已说明,二维数组是由若干个一维数组组成的,在内存中,数组是按行存放的,因此,在定义二维数组时,必须指定列数(即一行中包含几个元素),由于形参数组与实参数组类型相同,所以它们是由具有相同长度的一维数组所组成的。不能只指定第1维(行数)而省略第2维(列数),下面的写法是错误的:

int array [ 3 ] [ ] ;

在第2维大小相同的前提下,形参数组的第1维可以与实参数组不同。例如,实参数组定义为

int score[5][10];

而形参数组定义为

int array[][10];

int array[8][10];

均可以。这时形参数组和实参数组都是由相同类型和大小的一维数组组成的。C语言编译系统不检查第一维的大小。

例题:

有一个3×4的矩阵,求所有元素中的最大值

解题思路:

先使变量max的初值等于矩阵中第1个元素的值,然后将矩阵中各个元素的值与max相比,每次比较后都把“大者”存放在max中,全部元素比较完后,max的值就是所有元素的最大值。

编写程序:

运行结果: 

程序分析: 

形参数组array第1维的大小省略,第2维大小不能省略,而且要和实参数组a的第2维的大小相同。在主函数调用max _ value函数时,把实参二维数组a的第1行的起始地址传递给形参数组array,因此array数组第1行的起始地址与a数组的第1行的起始地址相同。由于两个数组的列数相同,因此array数组第2行的起始地址与a数组的第2行的起始地址相同。a [ i ] [ j ]与array[i][j]同占一个存储单元,它们具有同一个值。实际上,array[i][]就是a [ i ] [ j ],在函数中对array[i][j]的操作就是对a [ i ] [ i ]的操作。

 

http://www.lqws.cn/news/147781.html

相关文章:

  • Vim 设置搜索高亮底色
  • Flink 高可用集群部署指南
  • linux 故障处置通用流程-36计-14-27
  • Windows 10 IoT 系统深度定制指南:从环境搭建到工业部署
  • Web 架构相关文章目录(持续更新中)
  • Monorepo架构: Nx Cloud 扩展能力与缓存加速
  • 【深尚想】OPA855QDSGRQ1运算放大器IC德州仪器TI汽车级高速8GHz增益带宽的全面解析
  • AI编程助手入门指南:GitHub Copilot、Cursor与Claude的安装与基础使用
  • 【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
  • 20250605使用boot-repair来恢复WIN10和ubuntu22.04.6双系统的启动
  • 案例分享--汽车制动卡钳DIC测量
  • Hive的TextFile格式优化方法
  • 【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析
  • 14.AI搭建preparationのBERT预训练模型进行文本分类
  • LeetCode 1356.根据数字二进制下1的数目排序
  • Linux(13)——Ext系列⽂件系统
  • 【缺陷】温度对半导体缺陷电荷态跃迁能级的影响
  • PostgreSQL 技术峰会,为您打造深度交流优质平台
  • [10-1]I2C通信协议 江协科技学习笔记(17个知识点)
  • MATLAB读取文件内容:Excel、CSV和TXT文件解析
  • 「深度拆解」Spring Boot如何用DeepSeek重构MCP通信层?从线程模型到分布式推理的架构进化
  • 基于LocalAI与cpolar技术协同的本地化AI模型部署与远程访问方案解析
  • 阿里云域名怎么绑定
  • EasyRTC音视频实时通话助力新一代WebP2P视频物联网应用解决方案
  • 智慧赋能:移动充电桩的能源供给革命与便捷服务升级
  • Postgresql字符串操作函数
  • Python Excel 文件处理:openpyxl 与 pandas 库完全指南
  • WebRTC中的几个Rtp*Sender
  • 阿里云事件总线 EventBridge 正式商业化,构建智能化时代的企业级云上事件枢纽
  • 基于RK3568的多网多串电力能源1U机箱解决方案,支持B码,4G等