ТОР 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; Не нашли, что искали? Воспользуйтесь поиском:
|