视频字幕
让我们回顾数组下标访问的基础知识。数组是一种存储相同类型数据的集合,每个元素都有一个唯一的下标。重要的是,数组下标从0开始计数。比如这个整型数组data有3个元素,我们通过data[0]访问第一个元素100,data[1]访问第二个元素200,data[2]访问第三个元素300。
现在让我们学习如何使用for循环遍历数组。这里我们有一个包含5个整数的数组numbers。for循环是遍历数组的理想工具,循环变量i直接用作数组下标。循环从i等于0开始,条件是i小于5,每次循环后i递增1。
现在我们来看一个严重的错误:数组下标越界。如果我们错误地将循环条件写成i小于等于5,那么当i等于5时,程序会尝试访问numbers[5]。但是,对于长度为5的数组,有效的下标范围只有0到4。访问numbers[5]是非法的,会导致访问数组之外的内存。这可能导致程序崩溃、输出错误数据,或者破坏其他程序数据。记住:数组下标越界是C语言中最常见也最危险的错误之一!
现在让我们准备一个具体的示例数组来演示遍历过程。我们定义一个名为numbers的整型数组,长度为5,包含5个初始值:10、20、30、40、50。这个数组在内存中连续存储,有效的下标范围是从0到4。注意数组长度是5,但最大下标是4,因为下标从0开始计数。理解这个数组的结构对于正确遍历非常重要。
现在让我们详细演示for循环遍历数组的完整过程。循环从i等于0开始,每次都检查条件i小于5是否成立。当i等于0时,条件成立,访问numbers[0]得到值10并输出。然后i递增为1,继续检查条件,访问numbers[1]得到20。这个过程依次进行,直到i等于4时访问numbers[4]得到50。当i递增为5时,条件i小于5不再成立,循环正常结束。
现在我们来演示一个严重的编程错误:数组下标越界。如果我们错误地将循环条件写成i小于等于5,那么循环会执行6次,当i等于5时会尝试访问numbers[5]。但是这个数组只有5个元素,有效下标范围是0到4,访问numbers[5]就是越界访问。这会导致程序访问不属于数组的内存区域,可能引发程序崩溃、输出垃圾数据或破坏其他程序数据。这是C语言中最危险的错误之一!
让我们总结数组遍历的核心要点。首先,数组下标从0开始,有效范围是0到数组长度减1。正确的循环条件是i小于数组长度,而不是小于等于。记住,访问数组边界之外的元素是非常危险的,包括负下标也是非法的。养成良好的编程习惯,始终检查数组边界。这些基础知识将为我们后续学习指针与数组的关系奠定坚实的基础,因为数组名本质上就是一个指针!