面试题答案
一键面试#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;
for (int i = 0; i < 5; i++) {
printf("%d ", *(ptr + i));
}
return 0;
}
在这种情况下,数组名arr
在表达式中会被自动转换为指向数组首元素的指针,即&arr[0]
。它和指针变量ptr
在遍历数组时行为类似,都可以通过指针算术运算来访问数组元素。但数组名和指针变量是有区别的,数组名是一个常量指针,其指向的地址不能被修改,而指针变量的值是可以改变的。