C мог бы использовать те же правила, что и C ++; однако комитет по стандартизации C не решил сделать это.

тель на неконстантные данные может быть неявно преобразован в указатель на константные данные того же типа:

int       *x = NULL;
int const *y = x;

Добавление дополнительных квалификаторов const для сопоставления с дополнительной косвенностью должно логически работать аналогично:

int       *      *x = NULL;
int       *const *y = x; /* okay */
int const *const *z = y; /* warning */

Компилируя это с GCC или Clang с-Wall Однако флаг указывает на следующее предупреждение:

test.c:4:23: warning: initializing 'int const *const *' with an expression of type
      'int *const *' discards qualifiers in nested pointer types
    int const *const *z = y; /* warning */
                      ^   ~

Почему добавление дополнительногоconst квалификатор "отбрасывать квалификаторы во вложенных типах указателей"?

Ответы на вопрос(1)

Ваш ответ на вопрос