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

【C语言练习】014. 使用数组作为函数参数

014. 使用数组作为函数参数

  • 014. 使用数组作为函数参数
    • 示例1:使用数组作为函数参数并修改数组元素
      • 函数定义
        • 输出结果
    • 示例2:使用数组作为函数参数并计算数组的平均值
      • 函数定义
      • 输出结果
    • 示例3:使用二维数组作为函数参数
      • 函数定义
      • 输出结果
    • 示例4:使用动态分配的数组作为函数参数
      • 函数定义
      • 输出结果

014. 使用数组作为函数参数

在C语言中,数组作为函数参数时,实际上传递的是数组的首地址(即数组的第一个元素的地址)。这意味着函数内部对数组的修改会直接影响到原始数组。以下将通过具体示例展示如何使用数组作为函数参数,并在函数中处理数组。

示例1:使用数组作为函数参数并修改数组元素

函数定义

定义一个函数,用于将数组中的每个元素增加1。

#include <stdio.h>// 函数定义:将数组中的每个元素增加1
void incrementArray(int arr[], int size) {for (int i = 0; i < size; i++) {arr[i]++; // 修改数组元素}
}int main() {int arr[] = {1, 2, 3, 4, 5}; // 声明并初始化数组int size = sizeof(arr) / sizeof(arr[0]); // 计算数组的大小printf("Before incrementing:\n");for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");// 调用函数并传递数组incrementArray(arr, size);printf("After incrementing:\n");for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");return 0;
}
输出结果
Before incrementing:
1 2 3 4 5 
After incrementing:
2 3 4 5 6 

示例2:使用数组作为函数参数并计算数组的平均值

函数定义

定义一个函数,用于计算数组的平均值并返回结果。

#include <stdio.h>// 函数定义:计算数组的平均值
double calculateAverage(int arr[], int size) {int sum = 0;for (int i = 0; i < size; i++) {sum += arr[i]; // 计算总和}return (double)sum / size; // 返回平均值
}int main() {int arr[] = {1, 2, 3, 4, 5}; // 声明并初始化数组int size = sizeof(arr) / sizeof(arr[0]); // 计算数组的大小// 调用函数并接收返回值double average = calculateAverage(arr, size);printf("The average of the array elements is: %.2f\n", average);return 0;
}

输出结果

The average of the array elements is: 3.00

示例3:使用二维数组作为函数参数

函数定义

定义一个函数,用于打印二维数组的所有元素。

#include <stdio.h>// 函数定义:打印二维数组的所有元素
void printMatrix(int matrix[][4], int rows) {for (int i = 0; i < rows; i++) {for (int j = 0; j < 4; j++) {printf("%d ", matrix[i][j]);}printf("\n");}
}int main() {int matrix[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}}; // 声明并初始化二维数组// 调用函数并传递二维数组printMatrix(matrix, 3);return 0;
}

输出结果

1 2 3 4 
5 6 7 8 
9 10 11 12 

示例4:使用动态分配的数组作为函数参数

函数定义

定义一个函数,用于将动态分配的数组中的每个元素增加1。

#include <stdio.h>
#include <stdlib.h>// 函数定义:将数组中的每个元素增加1
void incrementArray(int *arr, int size) {for (int i = 0; i < size; i++) {arr[i]++; // 修改数组元素}
}int main() {int size = 5;int *arr = (int *)malloc(size * sizeof(int)); // 动态分配数组if (arr == NULL) {printf("Memory allocation failed\n");return 1;}// 初始化数组for (int i = 0; i < size; i++) {arr[i] = i + 1;}printf("Before incrementing:\n");for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");// 调用函数并传递动态分配的数组incrementArray(arr, size);printf("After incrementing:\n");for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");// 释放动态分配的内存free(arr);return 0;
}

输出结果

Before incrementing:
1 2 3 4 5 
After incrementing:
2 3 4 5 6 

相关文章:

【C语言练习】014. 使用数组作为函数参数

014. 使用数组作为函数参数 014. 使用数组作为函数参数示例1&#xff1a;使用数组作为函数参数并修改数组元素函数定义输出结果 示例2&#xff1a;使用数组作为函数参数并计算数组的平均值函数定义输出结果 示例3&#xff1a;使用二维数组作为函数参数函数定义输出结果 示例4&a…...

本地服务器备份网站数据,本地服务器备份网站的操作步骤

本地服务器备份网站数据的完整操作指南 一、明确备份需求与目标 核心备份对象 网站文件&#xff1a; 上传的媒体文件&#xff08;图片、视频、PDF等&#xff09; 配置文件&#xff08;如.htaccess、wp-config.php&#xff09; 附加内容&#xff08;根据需求选择&#xff…...

机器学习Day15 LightGBM算法

浅谈LightGBM算法:我们之前讲的集成学习算法分为三要素吧&#xff0c;就是形式&#xff0c;损失函数&#xff0c;优化方法&#xff0c;但是LightGBM算法并没有固定的形式&#xff0c;它主要是针对具体算法给出一些优化&#xff0c;它更像是前向分步算法一样&#xff0c;像一个框…...

算法查找目录

1. 基础数据结构 数组与链表 动态数组 实现与自动扩容机制均摊分析ArrayList/Vector实现 单向链表 基本操作(插入、删除、查找)链表反转环检测(Floyd判圈算法) 双向链表 插入删除操作优化双向遍历优势边界情况处理 循环链表 约瑟夫环问题单向循环链表双向循环链表 跳表 基本原…...

【HarmonyOS】作业三 UI

目录 一. 单选题&#xff08;共10题&#xff0c;10分&#xff09; 1. (单选题, 1分)关于Tabs组件页签的位置设置&#xff0c;下面描述错误的是 2. (单选题, 1分)下面哪个组件不能包含子组件? 3. (单选题, 1分)ArkTS语言的实现计数器功能的组件名称是以下哪个? 4. (单选题…...

2025五一杯数学建模B题:矿山数据处理问题,详细问题分析,思路模型

一、尊重原创&#xff1a;详细内容文末名片获取 二、数据文件解读 &#xff08;一&#xff09;数据文件 1&#xff1a;矿山监测一维数值样例数据.csv 想象一下&#xff0c;这就像是一本简单的记录册&#xff0c;里面记录着一组一维数值序列&#xff0c;每个数据点如同册子里的…...

ES6-Set-Map对象小记

Set 对象 添加元素 set.add(value)常用方法 方法描述has()判断 Set 对象中特定元素是否存在delete()从 Set 对象中删除指定元素clear()清空 Set 对象 遍历方法 很容易想到使用set.forEach(callBackFn, thisArg)方法来进行遍历&#xff0c;其中callBackFn回调的形式如下&am…...

WGCLOUD使用 - 如何监控RabbitMQ运行参数

WGCLOUD是一款开源免费的运维监控软件&#xff0c;开箱即用&#xff0c;实用轻量&#xff0c;高效简单。 RabbitMQ指标数据的采集工作是由server-backup来做的&#xff0c;所以我们需要部署server-backup&#xff0c;它是一个server的辅助工具&#xff0c;作用相当于agent Rabb…...

FreeSWITCH 发送 sip message 的 lua 程序

-- chat.lualocal from argv[1] local to argv[2] local body argv[3] local profile "internal" -- 改成自己的 sip_profileif not body thenstream:write("-ERR miss ie")return endlocal api freeswitch.API() local domain api:executeString(&q…...

安全学习基础入门5集

前言&#xff1a; 来源于b站小迪安全v2023第5天&#xff1a;基础入门-反弹SHELL&不回显带外&正反向连接&防火墙出入站&文件下载_哔哩哔哩_bilibili 环境准备&#xff1a; 通过网盘分享的文件&#xff1a;netcat-1.11 链接: https://pan.baidu.com/s/1zgyYvPf…...

Python结合QT进行开发

Python结合Qt进行开发指南 1. Qt for Python简介 Qt for Python(PySide/PyQt)是Python的官方Qt绑定,允许使用Python语言开发跨平台的GUI应用程序。PySide是Qt官方支持的Python绑定,而PyQt是Riverbank Computing提供的商业/开源版本。 主要特点: 跨平台支持(Windows/macOS…...

Python与深度学习:自动驾驶中的物体检测,如何让汽车“看懂”世界

Python与深度学习:自动驾驶中的物体检测,如何让汽车“看懂”世界 一、引言:自动驾驶的“眼睛”——物体检测 在自动驾驶技术的浪潮中,如何让汽车像人类一样“看懂”周围的环境,成为了最为关键的一环。汽车需要感知道路上的行人、障碍物、交通标志、其他车辆等信息,做出实…...

深度学习-神经网络参数优化的约束与迭代策略

文章目录 前言一、正则化惩罚1、权重正则化&#xff08;Weight Regularization&#xff09;2、结构正则化&#xff08;Structural Regularization&#xff09;3、其他正则化方法 二、梯度下降1、基本原理&#xff08;1&#xff09;梯度下降的计算&#xff08;2&#xff09; 算法…...

PyTorch 与 TensorFlow:深度学习框架的深度剖析与实战对比

PyTorch 与 TensorFlow&#xff1a;深度学习框架的深度剖析与实战对比 摘要 &#xff1a;本文深入对比 PyTorch 与 TensorFlow 两大深度学习框架&#xff0c;从核心架构、优缺点、适用场景等多维度剖析&#xff0c;结合实例讲解&#xff0c;帮助开发者清晰理解两者特性&#x…...

Meta公司于2025年4月29日正式推出了全新Meta AI应用程序的首个版本

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

【数据结构】- 栈

前言&#xff1a; 经过了几个月的漫长岁月&#xff0c;回头时年迈的小编发现&#xff0c;数据结构的内容还没有写博客&#xff0c;于是小编赶紧停下手头的活动&#xff0c;补上博客以洗清身上的罪孽 目录 前言&#xff1a; 栈的应用 括号匹配 逆波兰表达式 数制转换 栈的实…...

MATLAB R2024a安装教程

安装步骤&#xff1a; 软件大小&#xff1a;约12.08G 安装环境&#xff1a;Win10~Win11或更高 下载好安装包&#xff0c;可以在网上找个安装包&#xff0c;比如我用国内镜像matlab地址github.com/futureflsl/matlab-chinese-mirror&#xff0c;这样下载稍微快点 1.开始安装…...

【Linux网络】I/O多路转接技术 - poll

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

24.Linux中RTC的驱动实验_csdn

这个在裸机开发也有&#xff0c;如果有过裸机开发经验的同学就比较入手了&#xff01; 1、Linux 内核 RTC 驱动简介 2、STM32MP1 内部 RTC 驱动分析 像这里的读取时间&#xff0c;是在之前的代码里面已经写好了有关时间计数的代码&#xff0c;直接引用两个寄存器就行。 3、…...

C++负载均衡远程调用学习之TCP连接封装与TCPCLIENT封装

目录 1.LARSV0.3回顾 2.解决粘包问题的message结构体定义 3.LARSV0.4链接对象的方法和属性的定义 4.LARSv0.4 TCP_conn链接的初始化 5.LARV0.4-tcp_conn处理读事件方法do_read 6.LARV0.4-tcp_conn模块回顾 7.LARV0.4-tcp_send_message主动发包实现 8.LARV0.4-tcp_conn处…...

Python TensorFlow库【深度学习框架】全面讲解与案例

一、TensorFlow 基础知识 1. 核心概念 张量 (Tensor): 多维数组&#xff0c;是 TensorFlow 的基本数据单位&#xff08;标量、向量、矩阵等&#xff09;。计算图 (Graph): 早期版本中的静态图机制&#xff08;TF2.x 默认启用动态图&#xff09;。会话 (Session): 在 TF1.x 中…...

日志之ClickHouse部署及替换ELK中的Elasticsearch

文章目录 1 ELK替换1.1 Elasticsearch vs ClickHouse1.2 环境部署1.2.1 zookeeper 集群部署1.2.2 Kafka 集群部署1.2.3 FileBeat 部署1.2.4 clickhouse 部署1.2.4.1 准备步骤1.2.4.2 添加官方存储库1.2.4.3 部署&启动&连接1.2.4.5 基本配置服务1.2.4.6 测试创建数据库和…...

Git 基本操作(一)

目录 git add git commit git log git status git diff git 版本回退 git reset git add git add 指令为添加工作区中的文件到暂存区中。 git add file_name; //将工作区名称为file_name的文件添加进暂存区 git add .; //将工作区中的所有文件添加进暂存区 git comm…...

加密解密记录

一、RSA 加密解密 密钥对生成 1.前端加密解密 &#xff08;1&#xff09;.vue页面引入 npm install jsencrypt&#xff08;2&#xff09;工具 jsencrypt.js import JSEncrypt from jsencrypt/bin/jsencrypt.min// 密钥对生成 http://web.chacuo.net/netrsakeypairconst p…...

Playwright MCP 入门实战:自动化测试与 Copilot 集成指南

什么是 MCP&#xff1f; MCP&#xff08;Model Context Protocol&#xff09; 是一种为大语言模型&#xff08;LLM&#xff09;设计的协议&#xff0c;MCP充当 LLM 与实际应用之间的桥梁或“翻译器”&#xff0c;将自然语言转化为结构化指令&#xff0c;使得模型可以更精确、高…...

存算一体架构下的新型AI加速范式:从Samsung HBM-PIM看近内存计算趋势

引言&#xff1a;突破"内存墙"的物理革命 冯诺依曼架构的"存储-计算分离"设计正面临根本性挑战——在GPT-4等万亿参数模型中&#xff0c;数据搬运能耗已达计算本身的200倍。存算一体&#xff08;Processing-In-Memory, PIM&#xff09;技术通过‌在存储介…...

为 Unity 项目添加自定义 USB HID 设备支持 (适用于 PC 和 Android/VR)-任何手柄、无人机手柄、摇杆、方向盘

这是一份关于如何在 Unity 中为特定 USB HID 设备&#xff08;如 Phoenix SM600 手柄&#xff09;添加支持&#xff0c;并确保其在打包成 APK 安装到独立 VR 设备后仍能正常工作的教程。 目标: 使 Unity 能够识别并处理特定 USB HID&#xff08;Human Interface Device&#x…...

恒流源电路

常见的是上面这几种&#xff0c; 运放恒流电路一般搭配三极管使用 比赛用的模块可以用这种&#xff0c;会准一点...

python2反编译部分

文章目录 1、所需环境2、确认打包工具&#xff08;没成功&#xff09;3、 解包.exe文件&#xff08;以PyInstaller为例&#xff09; - useful【***总的来说这一步对我有用】4、定位关键文件 - useful5、 修复.pyc文件头&#xff08;关键步骤&#xff01;&#xff09;- maybe-ig…...

Selenium3自动化测试,Python3测试开发教程视频测试用例设计

Selenium3自动化测试&#xff0c;Python3测试开发教程视频测试用例设计25套高级软件测试&#xff0c;性能测试&#xff0c;功能测试&#xff0c;自动化测试&#xff0c;接口测试&#xff0c;移动端测试&#xff0c;手机测试&#xff0c;WEB测试&#xff0c;渗透测试&#xff0c…...

PyTorch 2.0编译器技术深度解析:如何自动生成高性能CUDA代码

引言&#xff1a;编译革命的范式转移 PyTorch 2.0的torch.compile不仅是简单的即时编译器&#xff08;JIT&#xff09;&#xff0c;更标志着深度学习框架从‌解释执行‌到‌编译优化‌的范式跃迁。本文通过逆向工程编译过程&#xff0c;揭示PyTorch如何将动态图转换为高性能CU…...

ctfshow web入门 web44

信息收集 依旧是把所有输出丢弃&#xff0c;这一次多了flag的过滤&#xff0c;没啥好说的&#xff0c;用*或者?代替就可以了 if(isset($_GET[c])){$c$_GET[c];if(!preg_match("/;|cat|flag/i", $c)){system($c." >/dev/null 2>&1");} }else{h…...

三生原理的离散生成逻辑如何与复分析结合?

AI辅助创作: 三生原理离散生成逻辑与复分析结合路径分析 一、‌生成规则与解析延拓的协同‌ ‌参数化联动机制向复数域延伸‌ 三生原理的离散素数生成公式(如p=3(2n+1)+2(2n+m+1))通过引入复数参数 n,m∈C,可扩展为复平面上的解析函数,从而建立与黎曼ζ函数的关联通道。…...

数据升降级:医疗数据的“时空穿梭“系统工程(分析与架构篇)

一、核心挑战与量化分析 1. 版本演化困境的深度解析 (1) 格式断层的结构化危机 数据转换黑洞:某医疗信息平台(2021-2023)统计显示: 数据类型CDA R1→R2转换失败率R2→FHIR转换失败率关键失败点诊断记录28.4%19.7%ICD编码版本冲突(18.7%)用药记录15.2%12.3%剂量单位标准化…...

简单句练习--语法基础

文章目录 谓语和非谓语及物与不及物动词及物不及物主语必须由名词性质的成分充当谓语和非谓语 与中文不同,英语中的动词分为谓语形式和非谓语形式。 以“do”为例, 可以充当谓语的形式有:do,does,did, 以及其他各种时态,如:have done,is doing等。不可独立充当谓语的有…...

基于若依RuoYi-Vue3-FastAPI 的 Docker 部署记录

最近在参与导师项目开发过程中&#xff0c;我选择基于若依 FastAPI Vue3 模板作为系统框架&#xff0c;通过 Docker 实现前后端、数据库和缓存环境的容器化部署。 RuoYi-Vue3-FastAPI的github地址&#xff1a;https://github.com/insistence/RuoYi-Vue3-FastAPI &#x1f6e0;…...

基于开源AI智能名片链动2+1模式S2B2C商城小程序的电商直播流量转化路径研究

摘要&#xff1a;在电商直播单场GMV突破2.28亿元的流量狂欢背后&#xff0c;传统直播模式正面临"流量过载而转化低效"的困境。本文提出以开源AI智能名片链动21模式S2B2C商城小程序重构流量转化路径&#xff0c;通过智能内容引擎、动态激励体系、供应链协同三大技术模…...

【Linux系统】Linux进程信号(产生,保存信号)

1. 信号快速认识 1-1 基本结论 如何识别信号&#xff1f;识别信号是内置的&#xff0c;进程识别信号&#xff0c;是内核程序员写的内置特性。信号产生之后&#xff0c;是知道怎么处理的&#xff0c;同理&#xff0c;如果信号没有产生&#xff0c;也是知道怎么处理信号的。所以…...

llamafactory-cli webui启动报错TypeError: argument of type ‘bool‘ is not iterable

一、问题 在阿里云NoteBook上启动llamafactory-cli webui报错TypeError: argument of type ‘bool’ is not iterable This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run gradio deploy from the terminal in the working directory t…...

工 厂 模 式

冷知识&#xff0c;当我们需要使用平底锅时&#xff0c;我们并不需要知道平底锅是怎么造的&#xff0c;坏了只需要再买就好了。至于造平底锅&#xff0c;全部交给我们的生产工厂就好。 蕴含这种创建对象思路的设计方法&#xff0c;我们称为“工厂模式”。 核心思想 工厂模式&…...

synchronized与Lock深度对比

Java并发编程&#xff1a;synchronized与Lock深度对比 基本概念 1.1 synchronized synchronized是Java内置的关键字&#xff0c;属于JVM层面的锁机制。它通过对象监视器(Monitor)实现同步&#xff0c;具有自动获取和释放锁的特性。 // 同步方法 public synchronized void sy…...

LeetCode —— 94. 二叉树的中序遍历

94. 二叉树的中序遍历 题目&#xff1a;94. 二叉树的中序遍历 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) :…...

【无标题】四色拓扑收缩模型中环形套嵌结构的颜色保真确定方法

#### **1. 环形嵌套结构的局部保真机制** - **零点虚边与环形嵌套**&#xff1a;在顶点 \( v \) 处引入环形嵌套结构&#xff08;如环面 \( T^2 \)&#xff09;&#xff0c;通过虚边连接形成闭合路径。该结构作为“颜色记忆单元”&#xff0c;存储相邻区域的色彩信息&#xff0…...

Curl 全面使用指南

Curl&#xff08;Client URL&#xff09;是一个跨平台命令行工具&#xff0c;支持多种协议&#xff08;HTTP/HTTPS/FTP/SFTP等&#xff09;&#xff0c;用于数据传输、API调试、文件上传/下载等场景。以下从 核心功能、用户疑问解答、高级技巧 三方面系统总结&#xff0c;并整合…...

vscode 的空格和 tab 设置 与 Rime 自建词库

自动保存&#xff08;多用于失去焦点时保存&#xff09; Files: Auto Save 推荐不勾 保存时格式化&#xff08;Pritter 插件的功能&#xff0c;自动使用 Pritter 的格式&#xff09; Editor: Format On Save 推荐不勾 tab 的空格数量&#xff0c;2 或 4 Editor: Tab Size 推荐…...

Spark-小练试刀

任务1&#xff1a;HDFS上有三份文件&#xff0c;分别为student.txt&#xff08;学生信息表&#xff09;result_bigdata.txt&#xff08;大数据基础成绩表&#xff09;&#xff0c; result_math.txt&#xff08;数学成绩表&#xff09;。 加载student.txt为名称为student的RDD…...

Python爬虫实战:获取jd商城最新5060ti 16g显卡销量排行榜商品数据并做分析,为显卡选购做参考

一、引言 1.1 研究目的 本研究旨在利用 Python 爬虫技术,从京东商城获取 “5060ti 16g” 型号显卡的商品数据,并对这些数据进行深入分析。具体目标包括: 实现京东商城的模拟登录,突破登录验证机制,获取登录后的访问权限。高效稳定地爬取按销量排名前 20 的 “5060ti 16g…...

【Vue bug】:deep()失效

vue 组件中使用了 element-plus 组件 <template><el-dialog:model-value"visible":title"title":width"width px":before-close"onClose"><div class"container" :style"{height:height px}"&g…...

基于数字图像处理的裂缝检测与识别系统(Matlab)

【优化】Matlab裂缝检测与识别系统 基于数字图像处理的裂缝检测与识别系统&#xff08;Matlab&#xff09; &#xff08;基本常在线秒回&#xff0c;有兴趣可以随时联系博主&#xff09; 系统主要的内容包括&#xff1a; 1.图像加载与初始化 选择图像文件并加载&#xff1a;…...

day12:遗传算法及常见优化算法分享

遗传算法这些常见优化算法简直是 “宝藏素材”&#xff01;用好了&#xff0c;轻轻松松就能填满论文一整节内容&#xff1b;要是研究透彻&#xff0c;甚至能独立撑起一整个章节。今天不打算深入展开&#xff0c;有个基础认知就行。等之后写论文真要用到这些算法了&#xff0c;咱…...