面试题答案
一键面试#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // 指针ptr指向数组arr的首地址
printf("%d\n", *(ptr + 2)); // 通过指针运算访问并打印第三个元素
return 0;
}
指针运算原理:在C语言中,数组名在大多数情况下会被隐式转换为指向数组首元素的指针。ptr
指向arr
的首地址,即arr[0]
的地址。在指针运算中,ptr + n
表示指针ptr
向后移动n
个元素的位置。这里ptr + 2
就指向了数组中的第三个元素(数组下标从0开始),然后通过*
运算符来获取该指针指向的内存地址中的值,即*(ptr + 2)
,也就是数组arr
的第三个元素的值。