1.world 发表于 2022-1-29 22:07:16

指针问题

#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;
}
可以解释一下那个打印的结果吗

YSW9527 发表于 2022-1-29 22:54:27

本帖最后由 YSW9527 于 2022-1-29 22:55 编辑

#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));
    //相当于printf("%c%c%c%c\n", array, array, array, array);

    return 0;
}

可以对照这张照片看一下,是二维数组的,类比一下就出来了

页: [1]
查看完整版本: 指针问题