推荐答案
// www.javascriptcn.com code example
#include <stdio.h>
int main() {
int arr[] = {10, 20, 30, 40, 50};
int *ptr = arr; // 指针指向数组的第一个元素
int length = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < length; i++) {
printf("Element %d: %d\n", i, *(ptr + i));
}
return 0;
}本题详细解读
1. 指针与数组的关系
在C语言中,数组名实际上是一个指向数组第一个元素的指针。因此,可以通过指针来遍历数组。
2. 指针的初始化
int *ptr = arr;
这里,ptr被初始化为指向数组arr的第一个元素。arr本身就是一个指向数组首元素的指针。
3. 指针的算术运算
*(ptr + i)
通过指针的算术运算,可以访问数组中的不同元素。ptr + i表示指针ptr向后移动i个位置,*(ptr + i)则解引用该指针,获取该位置的值。
4. 数组长度的计算
int length = sizeof(arr) / sizeof(arr[0]);
通过sizeof运算符可以计算数组的总字节数,再除以单个元素的字节数,得到数组的长度。
5. 遍历数组
for (int i = 0; i < length; i++) {
printf("Element %d: %d\n", i, *(ptr + i));
}通过for循环,使用指针遍历数组,并打印每个元素的值。