10.12上午 循环和条件语句中的goto和初识数组

发布于 2024-10-11  953 次阅读


goto 是 C 语言中的一种控制流语句

goto允许程序无条件跳转到代码中的另一个位置

通过 goto 语句,可以使用标签(label)标识要跳转的位置

label: // 标签定义(记住后面有个: 同时标签是你自己定义的,且标签必须在使用 goto 语句之前定义)
goto label; // 跳转到标签

goto往往会降低代码的可读性和可维护性,导致“意大利面条代码”,因此在现代编程中通常不建议使用 goto

goto加条件语句(如if)将是绝杀


数组,即数据的集合

它是一个可以存放多个相同类型变量的容器

type(如int、char、float等等数据类型) 数组名(自行定义) [size](数组可以存储的元素个数);

比如说:

int numbers[5]; // 定义一个可以存放5个整数的数组

数组也需要初始化,和定义变量一样,你既可以在定义数组时进行初始化,也可以在后期赋值

int numbers[5] = {1, 2, 3, 4, 5}; // 定义并初始化

初始化是用{ }而不是(),同时里面用逗号运算符进行分隔定义的元素

int numbers[5] = {1, 2}; // numbers = {1, 2, 0, 0, 0}

这个代码块的问题是,表明了5个数据但是只初始化了前两个,那么编译器就会自动将未赋值的元素会被初始化为 0 (确实挺爽)



 访问数组元素

我们通过下标(也即中括号里面的数字)来访问数组中的元素。你用的时候得知道数组的下标从 0 开始,所以第一个元素的下标是 0,第二个是 1,以此类推

int first = numbers[0]; // 访问第一个元素

numbers[1] = 10; // 修改第二个元素为 10

数组的大小

可以使用 sizeof 操作符获取数组的大小(以字节为单位)要获取元素个数,可以将数组的总字节数除以每个元素的字节数

int size = sizeof(numbers) / sizeof(numbers[0]); // 获取数组元素个数

想要遍历数组(只是提醒下)

可以使用循环来遍历数组中的每个元素

for (int i = 0; i < 5; i++) {
printf("%d\n", numbers[i]); // 输出每个元素
}

多维数组

在 C 语言中,多维数组是数组的数组,最常见的是二维数组

type 数组名[size1][size2];

连用两个[ ],size1表示第一维的大小,size2表示第二维的大小

int matrix[3][4]; // 定义一个 3 行 4 列的整数二维数组

3行4列是什么意思?

  • 3 表示数组的行数(即有 3 行)
  • 4 表示数组的列数(即每行有 4 列)

因此,matrix[3][4] 的结构可以表示为一个包含 3 行和 4 列的表格,具体可视化如下:

行 -> 列 0 列 1 列 2 列 3
行 0 | m[0][0] m[0][1] m[0][2] m[0][3]
行 1 | m[1][0] m[1][1] m[1][2] m[1][3]
行 2 | m[2][0] m[2][1] m[2][2] m[2][3]

先行后列

这样,matrix[i][j] 可以用来访问第 i 行第 j 列的元素,例如:

  • matrix[0][0] 访问第一行第一列的元素
  • matrix[1][2] 访问第二行第三列的元素

对多维数组进行初始化

以二维数组进行示例

int matrix[3][4] = {
{1, 2, 3, 4},//第一行对应的4列
{5, 6, 7, 8},//以此类推
{9, 10, 11, 12}
};

//就是还是得用花括号,但里面又有花括号,分别用逗号运算符隔开

遍历多维数组

可采用嵌套循环语句来实现

for (int i = 0; i < 3; i++) { // 遍历行
for (int j = 0; j < 4; j++) { // 遍历列
printf("%d ", matrix[i][j]); // 输出每个元素
}
printf("\n"); // 换行
}

多维数组通常用于存储表格类型的数据图形图像矩阵运算等。在需要表示多个属性或关系的情况下,使用多维数组可以很方便地组织和处理数据


数组在编程中非常有用

以下利用chatgpt进行说明

1. 存储多个相同类型的数据

数组可以存储多个相同类型的元素,这样可以使用一个变量名来引用多个数据,避免了使用多个标量变量的问题

示例:

int scores[5]; // 存储 5 个学生的分数,这样便无需一个一个地定义变量

2. 方便的数据管理

通过数组可以方便地管理、操作和访问一组相关数据。例如,使用数组可以轻松对数据进行排序、查找等操作

3. 数据的整合和处理

在处理数学和统计问题时,数组提供了一种整合数据的方式,使对数据的运算和查询变得高效

示例: 计算一组数字的平均值:

float average(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return (float)sum / size;
}
//孩子麻了,看不懂,先放着

4. 实现复杂数据结构

数组是实现其他复杂数据结构(如字符串、矩阵、表格和图形)的基础。例如,二维数组常用于表示矩阵或表格数据

5. 存储固定数量的数据

在知道数据量是固定的情况下,数组是非常合适的选择。这使得内存管理变得简单,因为长度是已知的

6. 高效的内存访问

由于数组在内存中是连续存储的,这使得访问数据非常快速,尤其是在需要频繁读取数据的场合

7. 多维数据表示

数组可以扩展到多维,方便地表示更复杂的关系。二维数组可以用于表示图像、表格等,三维数组可用于表示立体数据

示例:

c复制代码int matrix[3][3]; // 表示 3x3 矩阵

8. 与其他库和算法的兼容

很多现成的库和算法都是基于数组实现的,比如数学库、图形库等,通过数组可以方便地与这些功能进行交互

9. 简化计算

在编写算法时,数组可以直接用来存储多重结果,减少变量的数量,从而使代码更简洁

10. 工具和游戏开发

在游戏开发中,数组常用于存储游戏中的对象、角色、地图等信息,简化了程序的架构和逻辑

届ける言葉を今は育ててる
最后更新于 2024-11-05