c语言编程笔录

首页 >   > 笔记大全

笔记大全

c语言中数组的下标从什么开始

更新时间:2023-11-30

1. C语言中数组的下标从零开始

C语言中数组的下标从0开始,这意味着数组的第一个元素的下标为0,第二个元素的下标为1,以此类推。下面是一个示例代码:

#include <stdio.h>

int main() {
   int array[5] = {1, 2, 3, 4, 5};

   printf("array[0] = %d\n", array[0]); // 输出第一个元素
   printf("array[1] = %d\n", array[1]); // 输出第二个元素

   return 0;
}

输出结果:

array[0] = 1
array[1] = 2

从代码中可以看出,数组中的第一个元素array[0]为1,第二个元素array[1]为2。如果数组的下标从1开始,则第一个元素的下标应该为1而不是0。

2. 数组下标从零开始的优点

数组下标从零开始有以下几个优点:

  • 易于理解:大多数编程语言都使用数组下标从零开始,这使得大多数程序员可以更容易理解代码。
  • 减少错误:如果数组下标从1开始,则需要在其他代码中使用"1"来代表第一个元素。这样增加了出错的可能性,因为程序员可能会误将"1"用作数组下标。
  • 与指针对齐:使用C语言中的指针时,指向数组的指针指向的是第一个元素的地址,因此使用从零开始的下标使数组元素与指针对齐。

3. 使用数组越界的后果

如果试图读取数组的越界元素,程序将会崩溃或产生难以预测的行为:

#include <stdio.h>

int main() {
   int array[5] = {1, 2, 3, 4, 5};

   printf("array[5] = %d\n", array[5]); // 越界访问

   return 0;
}

输出结果:

Segmentation fault (core dumped)

在这个示例中,我们试图打印数组的第六个元素(下标为5),由于此元素不存在于数组中,程序崩溃并输出错误信息。

4. 数组下标遍历示例

下面是一个演示如何使用循环遍历数组的示例代码:

#include <stdio.h>

int main() {
   int array[5] = {1, 2, 3, 4, 5};
   int i;
   
   for(i = 0; i < 5; i++) {
      printf("array[%d] = %d\n", i, array[i]);
   }

   return 0;
}

输出结果:

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5

在这个示例中,我们使用一个循环来遍历数组的所有元素,并打印它们的值以及它们的下标。i的初始值为0,每次迭代增加1,直到i等于数组的长度。从输出结果中可以看到,数组的所有元素都已成功遍历。