Есть ли короткий способ преобразовать имя переменной в двойной указатель? - PullRequest
0 голосов
/ 08 октября 2018

Например:

int x = 7          // x is variable name
int* p_x = &x      // p_x is a pointer to x
int** pp_x = &p_x  // pp_x is a double pointer to x.

Есть ли быстрый способ перехода от x к pp_x без использования промежуточной переменной p_x?

РЕДАКТИРОВАТЬ: Благодарякомментарии ниже Я понял, что такая вещь на самом деле невозможна, потому что без p_x, pp_x было бы бессмысленным (без каламбура), потому что это не указывало бы на что-либо.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Если вы нацеливаетесь на что-либо выше C99, вы можете использовать составные литералы, например:

int **pp_x = (int *[1]){(int[1]){7}};
0 голосов
/ 08 октября 2018
int** pp_x = &p_x  //pp_x is a double pointer to x.

Это указатель на указатель на x.Таким образом, вы должны иметь p_x, чтобы иметь pp_x, и вам нужно поддерживать p_x все время, когда вам нужен доступ x через pp_x.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...