运行结果截图:
代码:
#include <stdio.h> int main() { // 定义一个二维数组并初始化 int array[4][5] = {0}; // 定义一个整型二维数组指针p,并初始化将其指向二维数组array int (*p) [5]= array; int i; int j; int k = 0; printf("array[4][5] is:\n"); // 给二维数组的各个元素赋值 for(i = 0;i < 4;i++) { for (j = 0; j < 5; j++) { array[i][j] = k++; printf("%d ", array[i][j]); } printf("\n"); } printf("\n"); // * ( * (array + 3) + 2)) 相当于 array[3][2],也即array数组的第4行第3列元素的值 // 数组下标方式定位到二维数组array的第1行第1列,打印该位置的数组元素的值 printf("array[0][0]: %d\n", array[0][0]); //指针定位到二维数组array的第1行第1列,对指针解引用,获得该位置的数组元素的值 printf("* * array: %d\n", * * array); // 数组下标方式定位到二维数组array的第2行第1列,对指针解引用,获得该位置的数组元素的值 printf("array[1][0]: %d\n", array[1][0]); //指针定位到二维数组array的第1行第2列,对指针解引用,获得该位置的数组元素的值 printf("* * (array + 1): %d\n", * * (array + 1)); printf("* * (p + 1): %d\n", * * (p + 1)); // 数组下标方式定位到二维数组array的第3行第4列,对指针解引用,获得该位置的数组元素的值 printf("array[2][3]: %d\n", array[2][3]); // 指针定位到二维数组array的第3行第4列,对指针解引用,获得该位置的数组元素的值 printf("* ( * (p + 2) + 3): %d\n", * ( * (p + 2) + 3)); printf("\nmain() finished...\n"); return 0; }