Указатель на указатель на первый элемент массива
Хотел попробовать сделать указатель на указатель на первый элемент массива:
#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 шт):
Автор решения: Mikhailo
→ Ссылка
Первый элемент массива - a[0] - имеет тип int.
Значит, указатель на него имеет тип int*:
int * aa;
Получить адрес можно, применив оператор &. Итого:
int * aa = &a[0];
Теперь ищем указатель на указатель -
int **aaa = &aa;
и понимаем, что таких указателей может быть множество - поскольку может быть множество указателей на первый элемент массива.
Автор решения: TigerTV.ru
→ Ссылка
Можно так:
#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;
}