C语言自学笔记10----C语言数组

C 语言数组

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

示例

int data[100];

例如,

float mark[5];

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

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

访问数组元素

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

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

说明:

数组的第一个索引为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;

输入和输出数组元素

访问元素超出范围!

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

int testArray[10];

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

现在,假设您尝试访问testArray[12]。该元素不可用。这可能会导致意外输出(抛出错误)。
因此,永远不要访问数组边界之外的元素。
C 语言多维数组

在C语言编程中,您可以创建一个数组。这些数组称为多维数组。例如,

float x[3][4];

这x是二维(2d)数组。该数组可以容纳12个元素。您可以将数组视为具有3行的表,每行有4列。

x[0][0];x[0][1];x[0][2];x[0][3];

x[1][0];x[1][1];x[1][2];x[1][3];

x[2][0];x[2][1];x[2][2];x[2][3];

C程序设计中的二维数组

同样,您可以声明三维(3d)数组。例如,

示例

float y[2][4][3];

在这里,数组y可以容纳24个元素。

初始化多维数组

下面是初始化二维和三维数组的方法:

二维数组的初始化

示例

//初始化二维数组的不同方法

int c[2][3] = {{1, 3, 0}, {-1, 5, 9}};

int c[][3] = {{1, 3, 0}, {-1, 5, 9}};

int c[2][3] = {1, 3, 0, -1, 5, 9};

三维数组的初始化

您可以用类似于二维数组的类似方式初始化三维数组。这是一个实例

示例

int test[2][3][4] = {

{{3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2}},

{{13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9}}};

相关推荐
Qlittleboy1 小时前
tp5集成elasticsearch笔记
大数据·笔记·elasticsearch
胖咕噜的稞达鸭2 小时前
数据结构---关于复杂度的基础解析与梳理
c语言·数据结构·算法·leetcode
范纹杉想快点毕业3 小时前
《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准
服务器·c语言·stm32·单片机·华为·fpga开发·51单片机
rannn_1113 小时前
【Linux学习|黑马笔记|Day4】IP地址、主机名、网络请求、下载、端口、进程管理、主机状态监控、环境变量、文件的上传和下载、压缩和解压
linux·笔记·后端·学习
長琹4 小时前
9、C 语言内存管理知识点总结
linux·c语言
麻雀无能为力4 小时前
python自学笔记8 二维和三维可视化
开发语言·笔记·python
Moonnnn.4 小时前
【51单片机学习】定时器、串口、LED点阵屏、DS1302实时时钟、蜂鸣器
笔记·单片机·学习·51单片机
阿熊不凶6 小时前
c语言中堆和栈的区别
java·c语言·jvm
菜菜子爱学习7 小时前
Nginx学习笔记(九)—— Nginx Rewrite深度解析
linux·运维·笔记·学习·nginx
Always_away9 小时前
数学分析| 极限论| 1.数列极限常用方法总结
笔记·学习·考研·数学