MST

星途 面试题库

面试题:C语言指针运算之数组访问

假设有一个整型数组 `int arr[5] = {1, 2, 3, 4, 5};`,使用指针运算的方式来访问数组中的第三个元素并打印出来。请写出完整的C语言代码,并解释指针运算的原理。
34.8万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#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的第三个元素的值。