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

一维数组和二维数组传参写法+(函数的声明+定义+调用)

一、一维数组传参(3 种等价写法)

1. 标准写法(最推荐,可读性最好)

// 形参写 int arr[] void func(int arr[], int n) { for (int i = 0; i < n; i++) { arr[i] = 10; // 可直接修改原数组 } } // 调用 int main() { int a[5] = {1,2,3,4,5}; func(a, 5); // 传数组名 + 长度 return 0; }

2. 指针写法(本质等价)

// 形参写 int *arr void func(int *arr, int n) { arr[0] = 100; // 一样能用 }

3. 带长度的数组写法(不推荐,长度无效)

// []里的数字没用,编译器会忽略 void func(int arr[100], int n) {}

二、二维数组传参(2 种核心写法)

二维数组传参必须指定第二维长度,否则编译器无法计算偏移。

1. 标准写法(最常用)

// 必须写 int arr[][列数] void func(int arr[][3], int row) { arr[0][0] = 99; // 修改原数组 } // 调用 int main() { int a[2][3] = {{1,2,3}, {4,5,6}}; func(a, 2); // 传数组名 + 行数 return 0; }

2. 指针数组写法(本质等价)

// 形参:int (*arr)[列数] 指向一维数组的指针 void func(int (*arr)[3], int row) {}

三、极简总结(背这个就够)

表格

数组类型形参写法(推荐)本质
一维数组void func(int arr[], int n)一级指针
二维数组void func(int arr[][列], int row)数组指针

关键规则

  1. 数组传参 = 传指针,函数内修改会改变原数组
  2. 一维传参:类型 数组名[]
  3. 二维传参:类型 数组名[][固定列数]列数必须写
  4. 一定要额外传递长度,函数内部不知道数组大小 (数组退化为指针后,sizeof失效,必须手动传行数 / 元素个数)

超简单大白话例子

1. 函数声明(告诉电脑:我有这个函数)

末尾必须加分号,不写代码

void add(int a, int b);

2. 函数定义(写出函数具体干嘛)

不加分号,带{}写逻辑

void add(int a, int b) { printf("%d", a+b); }

3. 函数调用(main 里用这个函数)

直接名字 + 参数

int main() { add(1,2); // 调用 return 0; }

一句话记死

  • 声明:报备格式,;结尾
  • 定义:写清功能,{}包裹
  • 调用:使用函数,括号传数

数组极简版(考试原题)

// 声明 void print(int arr[], int n); // 定义 void print(int arr[], int n) { printf("%d", arr[0]); } // 调用 int main() { int a[5]={1,2,3}; print(a,5); }
http://www.jsqmd.com/news/688551/

相关文章:

  • 告别SAP PO队列拥堵!从通道并发、队列优先级到ABAP优化的完整性能调优指南
  • S32K148的FlexCAN FD从零到跑通:基于S32KDS 2.2和SDK 3.0.0的保姆级配置流程
  • 融资传闻下的DeepSeek:从技术投入迈向商业化,商务采购岗位暗藏转型玄机
  • STM32 基于 AES-256 加密的串口 IAP 升级系统技术解析
  • 别再new了!UVM工厂机制(factory)的正确打开方式:从注册到覆盖的保姆级指南
  • 卫星姿态轨道控制Simulink仿真的资料与源程序
  • 海口自闭症机构推荐|宝妈实测不踩雷,给星宝靠谱的康复港湾 - 品牌测评鉴赏家
  • 合肥家长必看!发育迟缓康复中心大揭秘 - 品牌测评鉴赏家
  • VSCode 2026国产化配置失效?不是bug,是策略变更!深度解析2026.1版新增的GPG签名强制校验机制与离线信任链构建方法
  • 从古建筑修复到自动驾驶:聊聊三维点云空洞修复技术那些意想不到的应用场景
  • 从AVCC到Annex B:深入解析H.264 NALU封装格式的转换与应用
  • 指针经典编程练习题 解题方法 + 完整代码
  • Happy Island Designer完整指南:如何快速创建完美的动物森友会岛屿布局
  • 海口宝妈必看!语言发育迟缓干预中心大盘点 - 品牌测评鉴赏家
  • 告别Three.js!用3Dmol.js在网页里轻松展示分子结构(附完整代码)
  • 自学历程09-YOLOv8主干网络改造:以BiFPN为例详解模块集成
  • Mintegral 再次通过 SOC2 Type2 与 SOC3 鉴证,深化数据安全与合规
  • 从数据到部署:YOLO26吸烟行为检测系统实战(香烟/人/烟雾/电子烟/吸烟动作)(项目源码+数据集+模型权重+UI界面+python+深度学习+远程环境部署)
  • #广州最推荐的初中有哪些?2026年增城等地市场选择前5排名 - 十大品牌榜
  • 国际升学新选择:赫德教育集团如何化解高考留学难题 - 资讯焦点
  • 风华高科开路设计多层片式陶瓷电容器(Open Mode Design MLCC)
  • FlicFlac音频转换工具:7种格式互转的完整解决方案
  • 谁来讲讲,到底啥是云服务器?
  • 传统开发逐渐贬值,大模型开发才是未来刚需
  • 给硬件工程师的NVDLA架构选型指南:从Atomic-C/K到卷积缓冲,如何为你的AI芯片定制加速器
  • 告别手动调序!Vue3 + Element Plus表格拖拽排序保姆级教程(附完整代码)
  • 2026年4月|全国商用性净水器供应商:浩圆净水 - 资讯焦点
  • AI万能指令
  • 给 OpenClaw 加上企业级 Memory,你的 Agent 终于不用再问第二遍
  • 互联网大厂 Java 求职面试:从 Spring Boot 到微服务的深度探讨