指针与数组的关系
在 C 语言里,指针和数组紧密相关。数组名在多数表达式中会被隐式转换为指向数组首元素的指针。
指针访问数组元素
可以使用指针来访问数组的元素,下面是一个示例代码:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // 指针指向数组首元素
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, *(ptr + i));
}
return 0;
}
在上述代码中,`ptr` 是一个指向 `int` 类型的指针,它指向数组 `arr` 的首元素。通过 `*(ptr + i)` 可以访问数组的第 `i` 个元素。
数组名作为指针
数组名可以直接作为指针使用,下面是示例:
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, *(arr + i));
}
return 0;
}
这里 `arr` 被当作指针使用,`*(arr + i)` 和 `arr[i]` 是等价的。