MST

星途 面试题库

面试题:C语言数组与指针转换基础考察

请说明在C语言中,一个一维数组名在什么情况下会自动转换为指针,这种转换遵循怎样的规则?同时,编写一段代码,声明一个包含5个整数的数组,通过数组名转换后的指针访问数组的第三个元素,并打印其值。
29.8万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
  1. 数组名自动转换为指针的情况
    • 在绝大多数表达式中,数组名会自动转换为指向数组首元素的指针。例如,当数组名作为函数参数传递时,或者在使用数组名进行算术运算(如与指针运算类似的操作)时,数组名会转换为指针。
  2. 转换规则
    • 数组名转换后的指针类型是指向数组元素类型的指针。例如,对于int arr[10],数组名arr转换后的指针类型为int *,它指向数组arr的第一个元素arr[0]
  3. 代码示例
#include <stdio.h>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    int *ptr = arr; // 数组名arr自动转换为指向首元素的指针,并赋值给ptr
    printf("数组第三个元素的值为:%d\n", *(ptr + 2)); // 通过指针访问数组第三个元素
    return 0;
}