Sobes.tech
Back to questions
Junior — Middle
88

Можешь ли ты перечислить и объяснить основные виды указателей в языках программирования?

Companies where asked
КасперскийКасперский

Answer from AI

sobes.tech AI

В языках программирования, особенно в C/C++, указатели — это переменные, которые хранят адреса других переменных или объектов в памяти. Основные виды указателей:

  1. Указатель на объект (data pointer) — хранит адрес переменной или объекта. Позволяет косвенно обращаться к данным.

  2. Указатель на функцию (function pointer) — хранит адрес функции, что позволяет вызывать функцию через указатель.

  3. Нулевой указатель (null pointer) — специальное значение, означающее, что указатель не указывает ни на какой объект.

  4. Указатель на указатель (pointer to pointer) — указатель, который хранит адрес другого указателя.

  5. Константные указатели и указатели на константы:

    • int * const p — константный указатель, адрес не меняется, но данные можно менять.
    • const int * p — указатель на константу, данные менять нельзя, адрес можно.

Пример указателя на объект:

int a = 10;
int *p = &a; // p хранит адрес a
std::cout << *p; // выводит 10

Пример указателя на функцию:

void func() { std::cout << "Hello"; }
void (*fptr)() = func;
fptr(); // вызов функции через указатель

Указатели дают мощный инструмент для работы с памятью, динамическими структурами данных и функциями.