指针访问数组常见方式以及注意事项
-
数组越界:访问数组时必须确保下标在有效范围内。例如,对于
arr[5]的数组,有效的下标是0到4。如果尝试访问arr[5](或者说尝试读取不存在的第六个元素),这会导致未定义行为(通常是运行时错误,例如访问违规)。 -
指针和数组:在C或C++中,数组名可以退化为指向其第一个元素的指针。例如,如果你有一个
int arr[5];,那么arr实际上等同于&arr[0],即指向数组第一个元素的指针。因此,你也可以使用指针来访问数组元素,例如*(arr + 0)或更简单地*arr(这等同于arr[0])。
使用指针访问数组元素实例:
#include <stdio.h>
int main()
{
int arr[5] = {10, 20, 30, 40, 50};
int *ptr = arr; // ptr是指向arr[0]的指针
// 使用指针访问数组的第一个元素
printf("The first element is: %d\n", *ptr); // 或者使用 ptr[0]
// 使用指针访问数组的第二个元素
printf("The second element is: %d\n", *(ptr + 1)); // 或者使用 ptr[1]
return 0;
}

浙公网安备 33010602011771号