KAaha 发表于 2020-3-7 17:23:05

指针课后题求助

#include <stdio.h>

int main()
{
      char array = {
                {
                        {'x', 'x', 'x', 'x', 'x'},
                        {'x', 'x', 'o', 'x', 'x'},
                        {'x', 'x', 'x', 'x', 'x'}
                },
                {
                        {'x', 'x', 'x', 'x', 'x'},
                        {'x', 'x', 'o', 'x', 'x'},
                        {'x', 'x', 'x', 'x', 'x'}
                }
      };

      printf("%c%c%c%c\n", *(*(*array + 1) + 2), *(*(*(array + 1) + 1) + 2), ***array, *(**array + 1));

      return 0;
}
蒙对答案了
但是不知道四个指针具体指的是哪个位置

major_lyu 发表于 2020-3-7 18:38:37

*array是数组第一个三行五列二维矩阵的地址,
*array+1是数组第一个三行五列二维矩阵的一行
*(*array+1)+2是数组第一个三行五列二维矩阵的第一行第2列元素的地址
*(*(*array+1)+2)是数组第一个三行五列二维矩阵的第一行第2列的元素
其他的同理

就是要努力呀 发表于 2020-3-7 19:22:17

char array

*(*(*(array + i) + j) + k)

表示的是array数组的第个元素
页: [1]
查看完整版本: 指针课后题求助