0

Хотел попробовать сделать указатель на указатель на первый элемент массива:

#include <iostream>

int main() { int a[3] {}; int **aa = &a;

    return 0;

}

Выдает ошибку:

test.cpp:6:13: error: cannot convert ‘int (*)[3]’ to ‘int**’ in initialization
    6 |  int **aa = &a;
      |             ^~
      |             |
      |             int (*)[3]

2 Answers2

2

Первый элемент массива - a[0] - имеет тип int.

Значит, указатель на него имеет тип int*:

int * aa;

Получить адрес можно, применив оператор &. Итого:

int * aa = &a[0];

Теперь ищем указатель на указатель -

int **aaa = &aa;

и понимаем, что таких указателей может быть множество - поскольку может быть множество указателей на первый элемент массива.

Mikhajlo
  • 12,592
0

Можно так:

#include <iostream>

int main() { int a[3] {99, 2, 3}; int aa = a; int aaa = &aa; std::cout << aaa << std::endl; std::cout << aaa << std::endl; std::cout << **aaa << std::endl; return 0; }

TigerTV.ru
  • 3,225