Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Оператор с предусловием




Указатели.

Именованным объектом память выделяется на этапе компиляции. Структура этих объектов в ходе исполнения программы не меняется. Для создания изменения и уничтожения каких-либо объектов в ходе выполнения программы подобные средства использованы быть не могут. И, следовательно, за этими объектами нельзя закрепить конкретные имена. Средства создания динамических величин без использования нового имени основаны на том, что значением именованной величины является адрес поля памяти другой величины, не имеющий имени. Такие величины называются указатели.

В языке С++ используются три вида указателей:

*на объект

*на функцию

*на void

 

Указатель на объект содержит адрес поля памяти, в котором хранятся данные определенного типа.

 

тип*имя;

int*x; x- имя указателя, ссылающегося на поле типа интежер

Указательную функцию содержит адрес поле памяти, в котором содержится исполняемое поле функции.

Тип (*имя)(список типов аргументов)

int(*fun)(double, double);

fun указатель на функцию, возвращающую значение типа int и имеющую 2 аргумента типа double

Указатель может быть как const так и переменной. И указывать как на константу, так и на переменную.

Примеры:

int I;

const int a = 1;

inr*pi;

const int*pci;

int*count cp = &i; // указатель — константа на целую переменную

const int*const cpc = &ci;// указатель константа на целую константу

Выделяемые участки динамической памяти принято называть динамическими переменными.

Инициализировать указатель можно одним из следующих способов.\

1. Присваиванием указателю адреса существующего объекта:

· с помощью операций получения адреса.

Int a = 5;

int*p=&a;

int*p(&a)

· с помощью значения другого инициализированного указателя.

int*r = p;

· с помощью имени массива или функции.

Int b[10];

int*t = b;

void f(int a)

{..}

void(*pf)(int); //pf- указатель

pf = f; // присваивается

2.Присваиванием указателю адреса поле памяти в явном виде.

char*vp = (char*)oxB80000000;

6 ричная константа передается переменной bp

3. Присваиванием пустого значения.

int*r = 0;

4. Путем выделения участка динамической памяти с помощью операции new

int*n = new int;

int*m = new int (10);

int*q = new int[10];

Освобождения памяти, выделенное с помощью операции new выполняется с помощью операции delete, при этом сама переменная в указатели сохраняется. Delete n; delete []q;






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных