访问二维数组指定行列元素

介绍如何使用C语言输出二维数组中指定行指定列的元素值。

#include  

int main() { 
    // 初始化一个3行4列的二维数组  
    int a[3][4] = { {1, 3, 5, 7}, {9, 11, 13, 15}, {17, 19, 21, 23} };  

    // 定义一个指向包含4个整数元素数组的指针  
    int (*p)[4];  
    int row, col;  

    // 将二维数组的首地址赋给指针p  
    p = a;  

    // 从用户处获取要访问的行列号  
    printf("请输入要访问的行列号(从0开始,以逗号分隔): "); 
    scanf("%d,%d", &row, &col);  

    // 使用指针访问并输出指定元素的值  
    printf("a[%d][%d] = %d
", row, col, *(*(p + row) + col));  

    return 0;  
}  

代码解析:

  1. 定义了一个 int (*p)[4] 类型的指针 p,它指向一个包含 4 个整数的数组。
  2. 将二维数组 a 的首地址赋值给指针 p
  3. 使用 scanf 函数从用户获取要访问的行列号 rowcol
  4. 表达式 *(p + row) 表示指向第 row 行的首地址,*(p + row) + col 表示指向第 row 行第 col 列元素的地址,最后使用 * 取值。

运行结果:

请输入要访问的行列号(从0开始,以逗号分隔): 1,2
 a[1][2] = 13