ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Операции с указателями.1. Разадресация Предназначена для доступа поля памяти, адрес которой указан в указателе. Char a; char *p = new char; *p ='A'; a = *p; На одну и туже область могут ссылаться нескольку указателей, при чем они могут быть разного типа. #include <iostream> int main() { long A = OxCC77FFAA; short int *pint = (short int *) &A; char * pchar = (char*) &A; cout <<A<<*pint<<*pchar; return 0; } Если в выражении присутствуют указатели разных типов, то требуется явное преобразование типов для всех указателей, кроме void* Значение 0 не явно преобразуется в указатель любого типа. Присваивание указателей на объекты указателям на функции и наоборот не допускаются. 2. Арифметические операции. Сложение с константой, Вычитание указателей, Инкремет, Дикремент Операции применяются только к указателям одного типа. Инкремент перемещает указатель к следующему элементу массива, декремент к предыдущему, то есть значения указателя изменяется на величину sizeof(тип). Аналогично увеличение указателя на константу означает, что его значение изменяется на величину константы умноженной на размер объекта данного типа. Пример: short *p = new short[5]; p++; long *q = new long [5]; q++; Разность двух указателей — это разность их значений деленное на размер типа в байтах. Унарная операция получения адреса & - применима к величинам, имеющих имя, и размещенных в оперативной памяти. Следовательно, с ее помощью получить адрес скалярного выражения или не именованной константы нельзя.
Не нашли, что искали? Воспользуйтесь поиском:
|