C++ Массив указателей

Указатели в C++

Прежде чем объяснять понятие массивов указателей, давайте сначала рассмотрим пример, в котором используется массив из 3 целых чисел:

Пример

#include <iostream> using namespace std; const int MAX = 3; int main () { int var[MAX] = {10, 100, 200}; for (int i = 0; i < MAX; i++) { cout << "Значение var[" << i << "] = "; cout << var[i] << endl; } return 0; }

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200

Может возникнуть ситуация, когда мы хотим, чтобы массив хранил указатели на int или char или другие типы данных. Ниже приведено объявление массива указателей на целые числа:

int *ptr[MAX];

Здесь,ptrОн объявлен как массив, состоящий из MAX целочисленных указателей. Следовательно, каждый элемент в ptr является указателем на значение int. В следующем примере используются три целых числа, которые будут храниться в массиве указателей, как показано ниже:

Пример

#include <iostream> using namespace std; const int MAX = 3; int main () { int var[MAX] = {10, 100, 200}; int *ptr[MAX]; for (int i = 0; i < MAX; i++) { ptr[i] = &var[i]; // присвоить адрес целого числа } for (int i = 0; i < MAX; i++) { cout << "Значение var[" << i << "] = "; cout << *ptr[i] << endl; } return 0; }

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200

Вы также можете использовать массив указателей на символы для хранения списка строк, как показано ниже:

Пример

#include <iostream> using namespace std; const int MAX = 4; int main () { const char *names[MAX] = { "Zara Ali", "Hina Ali", "Nuha Ali", "Sara Ali", }; for (int i = 0; i < MAX; i++) { cout << "Значение names[" << i << "] = "; cout << names[i] << endl; } return 0; }

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

Value of names[0] = Zara Ali
Value of names[1] = Hina Ali
Value of names[2] = Nuha Ali
Value of names[3] = Sara Ali

Указатели в C++

Другие расширения