MST

星途 面试题库

面试题:C语言中数组与指针关系的基础应用

假设有一个整型数组 `int arr[5] = {1, 2, 3, 4, 5};`,请编写一段代码,使用指针遍历该数组并打印出每个元素的值,同时解释数组名在这种情况下与指针的关系。
31.5万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#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在遍历数组时行为类似,都可以通过指针算术运算来访问数组元素。但数组名和指针变量是有区别的,数组名是一个常量指针,其指向的地址不能被修改,而指针变量的值是可以改变的。