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

【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…...

Java关键字解析

Java关键字是编程语言中具有特殊含义的保留字&#xff0c;不能用作标识符&#xff08;如变量名、类名等&#xff09;。Java共有50多个关键字&#xff08;不同版本略有差异&#xff09;&#xff0c;下面我将分类详细介绍这些关键字及其使用方式。 一、数据类型相关关键字 1. 基…...

突破zero-RL 困境!LUFFY 如何借离线策略指引提升推理能力?

在大模型推理能力不断取得突破的今天&#xff0c;强化学习成为提升模型能力的关键手段。然而&#xff0c;现有zero-RL方法存在局限。论文提出的LUFFY框架&#xff0c;创新性地融合离线策略推理轨迹&#xff0c;在多个数学基准测试中表现卓越&#xff0c;为训练通用推理模型开辟…...

React Native本地存储方案总结

1. AsyncStorage&#xff08;键值对存储&#xff09; 适用场景&#xff1a;简单键值对存储&#xff08;如用户配置、Token、缓存数据&#xff09;。特点&#xff1a;异步、轻量、API 简单&#xff0c;但性能一般&#xff0c;不推荐存储大量数据。安装&#xff1a;npm install …...

基于Redis实现-附近商铺查询

基于Redis实现-附近查询 这个功能将使用到Redis中的GEO这种数据结构来实现。 1.GEO相关命令 GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2版本中加入到了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;帮助我们根据经纬度来检索数据&#…...

【java WEB】恢复补充说明

Server 出现javax.servlet.http.HttpServlet", according to the project’s Dynamic Web Module facet version (3.0), was not found on the Java Build Path. 右键项目 > Properties > Project Facets。Dynamic Web Module facet version选4.0即可 还需要在serv…...

安川机器人常见故障报警及解决办法

机器人权限设置 操作权限设置(如果密码不对,就证明密码被人修改) 编辑模式密码:无(一把钥匙,默认) 管理模式密码:999999999(9个9,二把钥匙) 安全模式密码:555555555(9个5,三把钥匙,权限最高,有的型号机器人,没有此模式,但最高密码为安全模式密码) 示教器…...

tiktok web X-Bogus X-Gnarly 分析

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向过程 部分python代码 import req…...

kes监控组件安装

环境准备 创建监控用户 useradd -m -s /bin/bash -d /home/kmonitor kmonitor passwd k_monitor usermod –a –G kingbase kmonitor 检查java版本 java –version [kmonitorkingbase node_exporter]$ java -version java version "1.8.0_341" Java(TM) SE …...

React-Native Android 多行被截断

1. 问题描述&#xff1a; 如图所示&#xff1a; 2. 问题解决灵感&#xff1a; 使用相同的react-native代码&#xff0c;运行在两个APP&#xff08;demo 和 project&#xff09;上。demo 展示正常&#xff0c;project 展示不正常。 对两个页面截图&#xff0c;对比如下。 得出…...

深度学习【Logistic回归模型】

回归和分类 回归问题得到的结果都是连续的&#xff0c;比如通过学习时间预测成绩 分类问题是将数据分成几类&#xff0c;比如根据邮件信息将邮件分成垃圾邮件和有效邮件两类。 相比于基础的线性回归其实就是增加了一个sigmod函数。 代码 import matplotlib.pyplot as plt i…...

数据科学与计算

1.设计目标与安装 Seaborn 是一个建立在 Matplotlib 基础之上的 Python 数据可视化库&#xff0c;专注于绘制各种统计图形&#xff0c;以便更轻松地呈现和理解数据。Seaborn 的设计目标是简化统计数据可视化的过程&#xff0c;提供高级接口和美观的默认主题&#xff0c;使得用…...

Swift与iOS内存管理机制深度剖析

前言 内存管理是每一位 iOS 开发者都绕不开的话题。虽然 Swift 的 ARC&#xff08;自动引用计数&#xff09;极大简化了开发者的工作&#xff0c;但只有深入理解其底层实现&#xff0c;才能写出高效、健壮的代码&#xff0c;避免各种隐蔽的内存问题。本文将从底层原理出发&…...

怎样给MP3音频重命名?是时候管理下电脑中的音频文件名了

在处理大量音频文件时&#xff0c;给这些文件起一个有意义的名字可以帮助我们更高效地管理和查找所需的内容。通过使用专业的文件重命名工具如简鹿文件批量重命名工具&#xff0c;可以极大地简化这一过程。本文将详细介绍如何利用该工具对 MP3 音频文件进行重命名。 步骤一&am…...

当AI浏览器和AI搜索替代掉传统搜索份额时,老牌的搜索引擎市场何去何从。

AI搜索与传统搜索优劣势分析 AI搜索优势 理解和处理查询方式更智能&#xff1a;利用自然语言处理&#xff08;NLP&#xff09;和机器学习技术&#xff0c;能够更好地理解用户的意图和上下文&#xff0c;处理复杂的问答、长尾问题以及多轮对话&#xff0c;提供更为精准和相关的…...

快速上手非关系型数据库-MongoDB

简介 MongoDB 是一个基于文档的 NoSQL 数据库&#xff0c;由 MongoDB Inc. 开发。 NoSQL&#xff0c;指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写&#xff0c;是对不同于传统的关系型数据库的数据库管理系统的统称。 MongoDB 的设计理念是为了应对大数据量、…...

【C++学习笔记】深入理解虚函数和多态

文章目录 1. 基本概念1.1 虚函数1.2 虚函数表1.3 虚函数表指针1.4 虚函数表在支持多态方面的工作原理 2. 类对象在内存中的布局参考 1. 基本概念 1.1 虚函数 类的成员函数&#xff0c;并不占用类对象的内存空间。 类中有虚函数&#xff0c;编译器会向类中插入一个看不见的成…...

STM32F103C8T6信息

STM32F103C8T6 完整参数列表 一、核心参数 内核架构‌ ARM Cortex-M3 32位RISC处理器 最大主频&#xff1a;72 MHz&#xff08;基于APB总线时钟&#xff09; 运算性能&#xff1a;1.25 DMIPS/MHz&#xff08;Dhrystone 2.1基准&#xff09; 总线与存储‌ 总线宽度&#xff…...

用手机相册教我数组概念——照片分类术[特殊字符][特殊字符]

目录 前言一、现实场景1.1 手机相册的照片管理1.2 照片分类的需求 二、技术映射2.1 数组与照片分类的对应关系2.2 数组索引与照片标签的类比 三、知识点呈现3.1 数组的基本概念3.2 数组在编程中的重要性3.3 数组的定义与初始化3.4 数组的常见操作&#xff08;增删改查&#xff…...

Node.js CSRF 保护指南:示例及启用方法

解释 CSRF 跨站请求伪造 (CSRF/XSRF) 是一种利用用户权限劫持会话的攻击。这种攻击策略允许攻击者通过诱骗用户以攻击者的名义提交恶意请求,从而绕过我们的安全措施。 CSRF 攻击之所以可能发生,是因为两个原因。首先,CSRF 攻击利用了用户无法辨别看似合法的 HTML 元素是否…...

【Linux】VSCode用法

描述 部分图片和经验来源于网络&#xff0c;若有侵权麻烦联系我删除&#xff0c;主要是做笔记的时候忘记写来源了&#xff0c;做完笔记很久才写博客。 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 目录 1 安装环境及运行C/C 1.1 安装及配置步骤 1.2 运…...

来聊聊JVM中安全点的概念

文章目录 写在文章开头详解safepoint基本概念什么是安全点?为什么需要安全点JVM如何让线程跑到最近的安全点线程什么时候需要进入安全点JVM如何保证线程高效进入安全点如何设置安全点用一次GC解释基于安全点的STW实践-基于主线程休眠了解安全点的工作过程代码示例基于日志印证…...

【AI面试准备】负责所有Al产品的模型能力评估及测试,保障AI产品的质量

面试岗位提出这个要求:负责所有Al产品的模型能力评估及测试,保障AI产品的质量。 目录 **一、AI产品模型评估的核心框架**1. **评估维度全景图**2. **质量保障全流程****二、关键模型类型评估策略**1. **分类模型(如推荐系统)**2. **生成模型(如GPT、Stable Diffusion)**…...

Nginx — http、server、location模块下配置相同策略优先级问题

一、配置优先级简述 在 Nginx 中&#xff0c;http、server、location 模块下配置相同策略时是存在优先级的&#xff0c;一般遵循 “范围越小&#xff0c;优先级越高” 的原则&#xff0c;下面为你详细介绍&#xff1a; 1. 配置继承关系 http 块&#xff1a;作为全局配置块&…...

mysql数据库备份与恢复方法

一、备份方法 逻辑备份&#xff08;基于SQL语句&#xff09; 使用mysqldump工具 全库备份&#xff1a;mysqldump -u root -p --all-databases > all_databases_backup.sql单库备份&#xff1a;mysqldump -u root -p jztdb > full_backup.sql排除特定表&#xff1a;--igno…...

实验三 软件黑盒测试

实验三 软件黑盒测试使用测试界的一个古老例子---三角形问题来进行等价类划分。输入三个整数a、b和c分别作为三角形的三条边&#xff0c;通过程序判断由这三条边构成的三角形类型是等边三角形、等腰三角形、一般三角形或非三角形(不能构成一个三角形)。其中要求输入变量&#x…...

线性代数—向量与矩阵的范数(Norm)

参考链接&#xff1a; 范数&#xff08;Norm&#xff09;——定义、原理、分类、作用与应用 - 知乎 带你秒懂向量与矩阵的范数(Norm)_矩阵norm-CSDN博客 什么是范数&#xff08;norm&#xff09;&#xff1f;以及L1,L2范数的简单介绍_l1 norm-CSDN博客 范数&#xff08;Norm…...

Umi-OCR项目(1)

最近接触到了一个项目&#xff0c;我在想能不能做出点东西出来。 目标&#xff1a;识别一张带表格的图片&#xff0c;要求非表格内容和表格内容都要识别得很好&#xff0c;并且可视化输出为word文档。 下面是第一步的测试代码&#xff0c;测试是否能够调用ocr能力。 import re…...

【业务领域】电脑主板芯片电路结构

前言 由前几期视频合集(零基础自学计算机故障排除—7天了解计算机开机过程)&#xff0c;讲解了POST的主板软启动过程&#xff1b;有不少网友留言、私信来问各种不开机的故障&#xff0c;但大多网友没能能过我们的这合集视频&#xff0c;很好的理清思路&#xff0c;那这样的情况…...

pandas读取Excel数据(.xlsx和.xls)到treeview

对于.xls文件&#xff0c;xlrd可能更合适&#xff0c;但需要注意新版本的xlrd可能不支持xlsx&#xff0c;不过用户可能同时需要处理两种格式&#xff0c;所以可能需要结合openpyxl和xlrd&#xff1f;或者直接用pandas&#xff0c;因为它内部会处理这些依赖。 然后&#xff0c;…...