C 语言数组

C 语言数组

在本教程中,您将学习如何使用数组。您将借助示例学习如何声明,初始化和访问数组的元素。

数组是可以存储多个值的变量。例如,如果要存储100个整数,则可以为其创建一个数组。

示例

cint data[100];

如何声明数组?

dataType arrayName[arraySize];

例如,

float mark[5];c

在这里,我们声明了一个浮点类型的数组mark。其大小为5。意味着,它可以容纳5个浮点值。

需要注意的是,数组的大小和类型一旦声明就不能更改

访问数组元素

您可以按索引访问数组的元素。

假设您如上所述声明了一个数组mark。第一个元素是mark[0],第二个元素是mark[1],依此类推。

C数组声明

说明
  • 数组的第一个索引为0,而不是1。在此示例中,数组为第mark[0]一个元素。
  • 如果数组的大小为,则要n访问最后一个元素,n-1则使用索引。在这个实例中mark[4]
  • 假设的起始地址mark[0]是2120d。然后,的地址mark[1]将为2124d。同样,地址mark[2]将是2128d等。
    这是因为a的大小float是4个字节。

如何初始化数组?

在声明期间可以初始化数组。例如,

示例

int mark[5] = {19, 10, 8, 17, 9};

您也可以像这样初始化一个数组。

示例

int mark[] = {19, 10, 8, 17, 9};

在这里,我们没有指定大小。但是,当我们使用5个元素进行初始化时,编译器知道其大小为5。
在C语言编程中初始化数组

这里,

mark[0] 等于 19
mark[1] 等于 10
mark[2] 等于 8
mark[3] 等于 17
mark[4] 等于 9

更改数组元素的值

示例

int mark[5] = {19, 10, 8, 17, 9}//使第三个元素的值为-1
mark[2] = -1;//使第五个元素的值为0
mark[4] = 0;

输入和输出数组元素

这是如何从用户那里获取输入并将其存储在数组元素中的方法。

// 获取输入并将其存储在第三个元素中
scanf("%d", &mark[2]);// 把输入存储在第i个元素中
scanf("%d", &mark[i-1]);

这是打印数组单个元素的方法。

示例

//打印数组的第一个元素
printf("%d", mark[0]);//打印数组的第三个元素
printf("%d", mark[2]);//打印数组的第i个元素
printf("%d", mark[i-1]);

示例1:数组输入/输出

//程序从用户那里获取5个值并将它们存储在数组中
//打印存储在数组中的元素
#include <stdio.h>int main() {int values[5];printf("输入5个整数: ");//接受输入并将其存储在数组中for(int i = 0; i < 5; ++i) {scanf("%d", &values[i]);}printf("显示整数: ");//打印数组的元素for(int i = 0; i < 5; ++i) {printf("%d\n", values[i]);}return 0;
}

输出结果

输入5个整数: 1
-3
34
0
3
显示整数: 1
-3
34
0
3

在这里,我们使用了一个 for循环,来从用户那里获取5个输入的数值,并将它们存储在一个数组中。然后,使用另一个 for循环,这些元素显示在屏幕上。

示例2:计算平均值

示例

//程序使用数组查找n个数字的平均值
#include <stdio.h>
int main()
{int marks[10], i, n, sum = 0, average;printf("输入元素数量: ");scanf("%d", &n);for(i=0; i<n; ++i){printf("输入数字%d: ",i+1);scanf("%d", &marks[i]);//将用户输入的整数添加到sum变量sum += marks[i];}average = sum/n;printf("平均值 = %d", average);return 0;
}

输出结果

输入元素数量: 5
输入数字1: 45
输入数字2: 35
输入数字3: 38
输入数字4: 31
输入数字5: 49
平均值 = 39

在这里,我们计算了用户输入的n个数字的平均值。

访问元素超出范围!

假设您声明了一个由10个元素组成的数组。比方说

int testArray[10];

您可以访问数组元素 testArray[0] - testArray[9]。

现在,假设您尝试访问testArray[12]。该元素不可用。这可能会导致意外输出(抛出错误)。

因此,永远不要访问数组边界之外的元素。

多维数组

在本教程中,您了解了数组。这些数组称为一维数组。

在下一个教程中,您将学习[多维数组(数组的数组)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/142054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

顺丰接口对接-订单创建与取消(java单元测试)

api文档 下单接口 &#xff1a;https://qiao.sf-express.com/Api/ApiDetails?level3393&interName%E4%B8%8B%E8%AE%A2%E5%8D%95%E6%8E%A5%E5%8F%A3-EXP_RECE_CREATE_ORDER 取消订单接口&#xff1a; https://qiao.sf-express.com/Api/ApiDetails?level3339&interNa…

算法-算法的基本框架思想

本文目录 算法的基本框架思想一、二叉树的基本框架1、二叉树的前序遍历2、二叉树的前序遍历优化2、二叉树的遍历基本框架 二、回溯算法的基本框架1、基本框架2、核心框架3、全排列的核心框架4、核心思想 三、动态规划的基本框架1、自顶向下递归的动态规划2、自顶向下递归的动态…

线程池的使用

线程池的作用 降低线程创建和销毁的开销&#xff1a;线程的创建和销毁是比较昂贵的操作。通过使用线程池&#xff0c;可以避免频繁地创建和销毁线程&#xff0c;而是复用线程池中已经存在的线程&#xff0c;从而降低了开销。 控制并发度&#xff1a;通过控制线程池中线程的数量…

【华为OD题库-009】食堂供餐-Java

题目 某公司员工食堂以盒饭方式供餐。为将员工取餐排队时间降低为0&#xff0c;食堂的供餐速度必须要足够快。现在需要根据以往员工取餐的统计信息&#xff0c;计算出一个刚好能达成排队时间为0的最低供餐速度。即&#xff0c;食堂在每个单位时间内必须至少做出多少份盒饭才能满…

ADC、DMA以及串口之间的联系和区别?

ADC、DMA和串口都是嵌入式系统中常用的模块&#xff0c;它们之间有以下联系和区别&#xff1a; 联系&#xff1a; ADC和DMA都是用于数据采集和传输的模块&#xff0c;ADC可以将模拟信号转换为数字信号&#xff0c;DMA可以在不经过CPU的情况下实现数据的高速传输。而串口则是一…

同城服务共享台球室小程序系统:打造智能化的台球体验

一、引言 随着科技的发展和人们生活节奏的加快&#xff0c;对于休闲娱乐的需求也在不断增长。台球作为一种广受欢迎的休闲活动&#xff0c;其智能化和便利性的需求也日益凸显。本文将探讨如何通过同城服务共享台球室小程序系统&#xff0c;打造智能化的台球体验。 二、系统设…

MySQL(14):视图

数据库对象 对象描述表(TABLE)表是存储数据的逻辑单元&#xff0c;以行和列的形式存在&#xff0c;列就是字段&#xff0c;行就是记录数据字典就是系统表&#xff0c;存放数据库相关信息的表。系统表的数据通常由数据库系统维护&#xff0c;程序员通常不应该修改&#xff0c;只…

mysql 讲解(1)

文章目录 前言一、基本的命令行操作二、操作数据库语句2.1、创建数据库2.2、删除数据库2.3、使用数据库2.4 查看所有数据库 三、列的数据类型3.1 字符串3.2 数值3.3 时间日期3.4 空3.5 int 和 varchar问题总结&#xff1a; 四、字段属性4.1 UnSigned4.2 ZEROFILL4.3 Auto_InCre…

ARPG----C++学习记录05 Section12 动画蒙太奇,收拿剑,MetaSound,调整动画

代码更新 https://github.com/BAOfanTing/ARPG_Game_Code/commit/c629270e49496ba1bcbaf03780d23c1842ca5e7a Animation Montages动画蒙太奇 蒙太奇的工作流程 新建一个鼠标左键的按键映射&#xff0c;下载一些攻击动画&#xff0c;重定向给我们的人物&#xff0c;新建一个动画…

PCL中的离群点去噪-StatisticalOutlierRemoval

作用是去除稀疏离群噪点。在采集点云的过程中&#xff0c;由于测量噪声的影响&#xff0c;会引入部分离群噪点&#xff0c;它们在点云空间中分布稀疏。在估算点云局部特征&#xff08;例如计算采样点处的法向量和曲率变化率&#xff09;时&#xff0c;这些噪点可能导致错误的计…

若依系统富文本框上传图片报错!

报错如下&#xff1a; 原因&#xff1a;如图&#xff0c;富文本路径中存在 / 字符&#xff0c;导致上传出错。 解决方案&#xff1a;将富文本框内容在前端进行加密&#xff0c;后端再解密。 前端&#xff1a; 安装 crypto-js 插件 npm install crypto-js 创建工具类 :在 sr…

使用MVS-GaN HEMT紧凑模型促进基于GaN的射频和高电压电路设计

标题&#xff1a;Facilitation of GaN-Based RF- and HV-Circuit Designs Using MVS-GaN HEMT Compact Model 来源&#xff1a;IEEE TRANSACTIONS ON ELECTRON DEVICES&#xff08;19年&#xff09; 摘要—本文阐述了基于物理的紧凑器件模型在研究器件行为细微差异对电路和系统…

signed char表示的最大数据范围是多少?

signed char表示的最大数据范围是多少。 1.首先要明白负数在计算机内是以补码的形式存储的&#xff0c;最高位1代表是负数&#xff0c;最高位0代表正数。 2.char数据类型占据一个字节。 3.一个字节表示的最大负数是(1)111_1111即-127&#xff1b;一个字节表示的最大正数是(0)11…

好心提醒下,幼师姐妹们要知道啊

幼师家人们在不在&#xff1f;在不在&#xff1f; 不会还有姐妹在自己写教案&#xff0c;写总结&#xff0c;写评语啥的吧&#xff0c;这个好东西真的要知道啊&#xff01;&#xff01; 只要输入关键词&#xff0c;马上就能得到你想要的内容&#xff0c;真的很强啊&#xff0…

Pytorch从零开始实战09

Pytorch从零开始实战——YOLOv5-Backbone模块实现 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——YOLOv5-Backbone模块实现环境准备数据集模型选择开始训练可视化模型预测总结 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.…

【java学习—十四】Class类(2)

文章目录 1. Class类2. Class类的常用方法3. 实例化Class类对象&#xff08;四种方法&#xff09; 1. Class类 在 Object 类中定义了以下的方法&#xff0c;此方法将被所有子类继承&#xff1a; public final Class getClass() 以上的方法返回值的类型是一个 Class 类&#xf…

服务器、云服务器、高防服务器都有什么优势呢?

云服务器的优点可以从以下几方面讲&#xff1a; 第一&#xff0c;从技术方面来说&#xff0c;云服务器含有云计算机技术&#xff0c;而云计算技术综合了各种软件和硬件技术。而那些独立的服务器是独立的&#xff0c;不会整合这些技术。 第二&#xff0c;云服务器的安全性能更…

web3 React dapp进行事件订阅

好啊&#xff0c;上文web3 React Dapp书写订单 买入/取消操作 我们已经写好了 填充和取消订单 这就已经是非常大的突破了 但是 留下了一个问题 那就是 我们执行完之后 订单的数据没有直接更新 每次都需要我们手动刷新 才能看到结果 那么 今天我们就来看解决这个问题的事件订阅 …

MapReduce 读写数据库

MapReduce 读写数据库 经常听到小伙伴吐槽 MapReduce 计算的结果无法直接写入数据库&#xff0c; 实际上 MapReduce 是有操作数据库实现的 本案例代码将实现 MapReduce 数据库读写操作和将数据表中数据复制到另外一张数据表中 准备数据表 create database htu; use htu; creat…

android手机平板拓展电脑音频

&#xff08;1&#xff09;首先确保电脑上有声卡&#xff0c;就是电脑右下角小喇叭能调音量&#xff0c;不管电脑会不会响&#xff0c;如果小喇叭标记了个错误&#xff0c;说明没有声卡&#xff0c;安装图上的虚拟声卡软件。 &#xff08;2&#xff09;图上第一个PC免安装及局…