MST

星途 面试题库

面试题:C语言指针变量初始化中等难度题

请简述C语言中指针变量初始化的两种常见方式,并说明在以下代码中,如何正确初始化指针变量`ptr`指向数组`arr`的第三个元素。 ```c int arr[5] = {1, 2, 3, 4, 5}; int *ptr; ```
22.5万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
  1. 指针变量初始化的两种常见方式
    • 方式一:使用变量地址初始化 在声明指针变量时,通过取地址符&获取一个已存在变量的地址来初始化指针。例如:
int num = 10;
int *ptr1 = #

这里ptr1指针被初始化为指向num变量的地址。

  • 方式二:使用动态分配内存的地址初始化 通过使用内存分配函数(如malloc等)动态分配内存,然后将分配内存的地址赋值给指针变量。例如:
int *ptr2 = (int *)malloc(sizeof(int));
if(ptr2!= NULL){
    *ptr2 = 20;
}

这里ptr2指针被初始化为指向通过malloc分配的内存地址。

  1. 在给定代码中正确初始化指针变量ptr指向数组arr的第三个元素
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = &arr[2];

因为数组下标从0开始,所以arr[2]表示数组arr的第三个元素,通过取地址符&获取arr[2]的地址并赋值给指针变量ptr,这样ptr就指向了数组arr的第三个元素。