MST

星途 面试题库

面试题:C语言指针数组与数组指针的辨析

有一个二维数组int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; 定义一个指向该二维数组首行的指针变量,并用该指针变量访问数组中的元素11,写出具体代码及解释。
17.6万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>
int main() {
    int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
    // 定义一个指向二维数组首行的指针变量
    int (*ptr)[4] = arr; 
    // 访问元素11
    std::cout << *(*(ptr + 2) + 2) << std::endl; 
    // ptr + 2 表示移动到第三行(数组下标从0开始)
    // *(ptr + 2) 表示取第三行的首地址
    // *(ptr + 2) + 2 表示第三行中第三个元素的地址(数组下标从0开始)
    // *(*(ptr + 2) + 2) 表示取该地址处的值,即11
    return 0;
}