【C语言----数组详解】

embedded/2025/1/30 22:23:48/

目录

---------------------------------------begin---------------------------------------

一、什么是数组

二、数组的声明和初始化

1. 数组的声明

2. 数组的初始化

三、数组元素的访问

四、数组的遍历

五、数组的应用

六、多维数组

七、总结

----------------------------------------end----------------------------------------


---------------------------------------begin---------------------------------------

一、什么是数组

数组是一种用于存储相同数据类型元素的顺序集合。它将多个相同类型的变量按顺序排列在一起,

并使用一个统一的名称(数组名)来标识,通过下标(索引)来访问各个元素。

想象一下: 你可以把数组想象成一个储物柜,每个储物柜都有一个编号(下标),里面存放着不

同的物品(元素)。你可以通过编号快速找到并访问特定的物品。

二、数组的声明和初始化

1. 数组的声明

在C语言中,声明数组需要指定以下信息:

  • 数据类型: 数组中元素的数据类型,例如 int、float、char 等。

  • 数组名: 数组的名称,遵循变量命名规则。

  • 数组大小: 数组中最多可以存放的元素个数,必须是一个常量表达式。

// 声明一个可以存储10个整数的数组
int numbers[10];// 声明一个可以存储20个字符的数组
char name[20];
2. 数组的初始化

数组可以在声明时进行初始化,也可以在声明后逐个元素赋值。

声明时初始化:

// 声明并初始化一个包含5个整数的数组
int numbers[5] = {1, 2, 3, 4, 5};// 可以省略数组大小,编译器会根据初始化列表自动推断
int numbers[] = {1, 2, 3, 4, 5};

声明后逐个元素赋值:

int numbers[5];
numbers[0] = 1;
numbers[1] = 2;
// ... 以此类推

三、数组元素的访问

数组元素通过下标(索引)进行访问,下标从0开始,最大下标为数组大小减一。

int numbers[5] = {10, 20, 30, 40, 50};// 访问第一个元素
int firstNumber = numbers[0]; // firstNumber = 10// 修改第三个元素
numbers[2] = 100; // numbers = {10, 20, 100, 40, 50}

注意 访问数组元素时,下标不能越界,否则会导致程序运行错误。

四、数组的遍历

遍历数组是指依次访问数组中的每个元素。常用的遍历方法有两种:

1. 使用 for 循环:

int numbers[5] = {10, 20, 30, 40, 50};for (int i = 0; i < 5; i++) {printf("%d ", numbers[i]);
}
// 输出结果:10 20 30 40 50

2. 使用 while 循环:

int numbers[5] = {10, 20, 30, 40, 50};
int i = 0;while (i < 5) {printf("%d ", numbers[i]);i++;
}
// 输出结果:10 20 30 40 50

五、数组的应用

数组在C语言编程中应用广泛,以下列举几个常见应用场景:

  • 存储和处理大量数据: 例如,存储学生成绩、温度数据等。

  • 实现字符串: C语言中,字符串实际上是以字符数组的形式存储的。

  • 作为函数参数: 可以将数组作为参数传递给函数,以便在函数内部对数组进行操作。

  • 实现数据结构: 数组可以用来实现栈、队列等数据结构。

六、多维数组

C语言支持多维数组,例如二维数组、三维数组等。多维数组可以理解为数组的数组。

二维数组的声明和初始化:

// 声明一个3行4列的二维数组
int matrix[3][4];// 声明并初始化一个2行3列的二维数组
int matrix[2][3] = {{1, 2, 3},{4, 5, 6}
};

二维数组元素的访问:

int matrix[2][3] = {{1, 2, 3},{4, 5, 6}
};// 访问第二行第三列的元素
int element = matrix[1][2]; // element = 6

七、总结

数组是C语言中非常重要的数据结构,掌握数组的使用对于编写高效、简洁的代码至关重要。本文

介绍了数组的基本概念、声明和初始化方法、元素的访问和遍历、常见应用场景以及多维数组等内

容。希望读者能够通过本文的学习,对C语言数组有一个更深入的理解,并能够灵活运用数组解决

实际问题。

----------------------------------------end----------------------------------------


http://www.ppmy.cn/embedded/158175.html

相关文章

单片机-STM32 IIC通信(OLED屏幕)(十一)

一、屏幕的分类 1、LED屏幕&#xff1a; 由无数个发光的LED灯珠按照一定的顺序排列而成&#xff0c;当需要显示内容的时候&#xff0c;点亮相关的LED灯即可&#xff0c;市场占有率很高&#xff0c;主要是用于户外&#xff0c;广告屏幕&#xff0c;成本低。 LED屏是一种用发光…

Flutter_学习记录_Tab的简单Demo~真的很简单

1. Tab的简单使用了解 要实现tab(选项卡或者标签视图)需要用到三个组件&#xff1a; TabBarTabBarViewTabController 这一块&#xff0c;我也不知道怎么整理了&#xff0c;直接提供代码吧&#xff1a; import package:flutter/material.dart;void main() {runApp(MyApp());…

为AI聊天工具添加一个知识系统 之78 详细设计之19 正则表达式 之6

本文要点 要点 本项目设计的正则表达式 是一个 动态正则匹配框架。它是一个谓词系统&#xff1a;谓词 是运动&#xff0c;主语是“维度”&#xff0c;表语是 语言处理。主语的一个 双动结构。 Reg三大功能 语法验证、语义检查和 语用检验&#xff0c;三者 &#xff1a;语义约…

C#AWS signatureV4对接Amazon接口

马上要放假了&#xff0c;需要抓紧时间测试对接一个三方接口&#xff0c;对方是使用Amazon服务的&#xff0c;国内不多见&#xff0c;能查的资(代)料(码)&#xff0c;时间紧比较紧&#xff0c;也没有时间去啃Amazon的文档&#xff0c;主要我的英文水平也不行&#xff0c;于是粗…

「AI学习笔记」深度学习的起源与发展:从神经网络到大数据(二)

深度学习&#xff08;DL&#xff09;是现代人工智能&#xff08;AI&#xff09;的核心之一&#xff0c;但它并不是一夜之间出现的技术。从最初的理论提出到如今的广泛应用&#xff0c;深度学习经历了几乎一个世纪的不断探索与发展。今天&#xff0c;我们一起回顾深度学习的历史…

CentOS 7 搭建lsyncd实现文件实时同步 —— 筑梦之路

在 CentOS 7 上搭建 lsyncd&#xff08;Live Syncing Daemon&#xff09;以实现文件的实时同步&#xff0c;可以按照以下步骤进行操作。lsyncd 是一个基于 inotify 的轻量级实时同步工具&#xff0c;支持本地和远程同步。以下是详细的安装和配置步骤&#xff1a; 1. 系统准备 …

数据分析学习路线

阶段 1&#xff1a;数学与统计基础 1.1 数学基础 数据分析涉及大量的数学知识&#xff0c;尤其是统计学。虽然你不需要成为数学专家&#xff0c;但一些基本的数学概念对你理解数据分析非常重要。 线性代数&#xff1a; 矩阵运算&#xff1a;理解矩阵乘法、求逆等操作。特征值…

NLP深度学习 DAY4:Word2Vec详解:两种模式(CBOW与Skip-gram)

用稀疏向量表示文本&#xff0c;即所谓的词袋模型在 NLP 有着悠久的历史。正如上文中介绍的&#xff0c;早在 2001年就开始使用密集向量表示词或词嵌入。Mikolov等人在2013年提出的创新技术是通过去除隐藏层&#xff0c;逼近目标&#xff0c;进而使这些单词嵌入的训练更加高效。…