Как обращаться к элементам массива через указатель?

В языке программирования C++ можно обращаться к элементам массива через указатель, используя арифметику указателей. Для этого необходимо объявить указатель на тип элемента массива и присвоить ему адрес первого элемента. Затем, используя арифметические операции, можно получить доступ к другим элементам массива.

Рассмотрим пример:

#include <iostream>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};  // Объявляем массив из 5 элементов
    int* ptr = arr;  // Объявляем указатель и присваиваем ему адрес первого элемента массива

    std::cout << *ptr << std::endl;  // Выводим значение первого элемента (1)

    ptr++;  // Увеличиваем указатель на 1, теперь он указывает на второй элемент массива
    std::cout << *ptr << std::endl;  // Выводим значение второго элемента (2)

    ptr += 2;  // Увеличиваем указатель на 2, теперь он указывает на четвертый элемент массива
    std::cout << *ptr << std::endl;  // Выводим значение четвертого элемента (4)

    return 0;
}

В данном примере мы объявляем массив arr из 5 элементов и инициализируем его значениями от 1 до 5. Затем мы объявляем указатель ptr на тип int и присваиваем ему адрес первого элемента массива, используя имя массива без индекса.

Для доступа к элементам массива через указатель мы используем операцию разыменования (*). В примере мы выводим значения элементов массива, используя разыменованный указатель ptr, и приращаем указатель с помощью операции инкремента (++) и сложения (+=), чтобы перемещаться по элементам массива.

Обратите внимание, что приращение указателя зависит от размера типа элемента массива. В примере выше, поскольку тип элементов массива - int, приращение указателя на 1 приводит его к следующему int в памяти, а приращение на 2 - к двум следующим элементам.

Таким образом, обращение к элементам массива через указатель в C++ реализуется путем получения адреса первого элемента массива и использования операций инкремента и разыменования указателя для доступа к другим элементам. Это позволяет эффективно обрабатывать массивы и выполнять с ними различные операции в программе.