В чем разница между int * const * p и int ** const p - PullRequest
0 голосов
/ 02 февраля 2020
#include <stdio.h>
    int main()
    {
        int i = 11;
        int *p = &i;
        foo(&p);
        printf("%d ", *p);
    }
    void foo(int *const *p)
    {
        int j = 10;
        *p = &j;
        printf("%d ", **p);
    }

Как манипулируют параметрами в функции FOO, int * const * и int ** const - это одно и то же?

1 Ответ

0 голосов
/ 02 февраля 2020

Это может помочь вам в ответе: Правило по часовой стрелке / спирали

Далее приведено несколько примеров для объяснения понятия const и указателей:

int* - pointer to int
int const * - pointer to const int
int * const - const pointer to int
int const * const - const pointer to const int

Теперь первый констант может быть по обе стороны от типа так:

const int * == int const *
const int * const == int const * const

Если вы хотите go далеко вперед, вы можете сделать что-то вроде этого:

int ** - pointer to pointer to int
int ** const - a const pointer to a pointer to an int //THIS IS YOUR CASE
int * const * - a pointer to a const pointer to an int //THIS IS YOUR CASE
int const ** - a pointer to a pointer to a const int
int * const * const - a const pointer to a const pointer to an int
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...