- •Указатели
- •Указатели — это переменные, которые хранят адреса памяти.
- •Формат объявления переменной- указателя таков:
- •Чтобы объявить переменную р указателем на int-значение, используйте следующую инструкцию.
- •Базовый тип указателя определяет тип данных, на которые он будет
- •Операторы, используемые с указателями
- •Второй оператор работы с указателями (*) служит дополнением к первому (&). Это также
- •Операции, выполняемые с помощью указателей, часто называют операциями непрямого доступа, поскольку мы косвенно
- •Переменные-указатели должны всегда указывать на соответствующий тип данных. Например, при объявлении указателя типа
- •Несмотря на то что, как было заявлено выше, при присваивании два указателя должны
- •// Эта программа не будет выполняться
- •Результат работы программы:
- •При присваивании значения области памяти, адресуемой указателем, его (указатель) можно использовать с левой
- •Чтобы инкрементировать или декрементировать значение, расположенное в области памяти, адресуемой указателем, можно использовать
- •Арифметические операции над указателями
- •Пусть p1 — указатель на int- переменную с текущим значением 2 ООО (т.е.
- •Для операции декрементирования справедливо обратное утверждение, т.е. при каждом декрементировании значение p1 будет
- •Для указателей на символьные значения результат операций инкрементирования и декрементирования будет таким же,
- •Со значениями указателей можно выполнять операции сложения и вычитания, используя в качестве второго
- •Несмотря на то что складывать указатели нельзя, один указатель можно вычесть из другого
- •// Демонстрация арифметических операций
- •0012FE5C 0012FE84 0012FE60 0012FE8C 0012FE64 0012FE94 0012FE68 0012FE9C 0012FE6C 0012FEA4 0012FE70 0012FEAC 0012FE74
- •Узелок на память
- •Указатели и массивы
- •Имя массива без индекса образует
- •если нужно получить доступ к пятому элементу массива str, используйте одно из следующих
- •Арифметические операции над указателями выполняются быстрее, чем индексирование массивов, особенно при доступе к
- •int main()
- •int main()
- •Таблица строк — это таблица, сгенерированная компилятором
- •Значение одного указателя можно сравнивать с другим.
- •Даны два указателя (с именами А и В), которые ссылаются на один и
- •int main()
- •Массивы указателей
- •Чтобы присвоить значение переменной var целочисленной переменной х с помощью массива ipa, используйте
- •Объявленный, но не инициализированный указатель будет содержать произвольное значение.
- •Если указатель содержит нулевое значение, считается, что он ни на что не ссылается
- •Для тестирования указателя используется инструкция if (любой из следующих ее вариантов).
- •Можно создать указатель, который будет ссылаться на другой указатель, а тот — на
- •Переменную, которая является указателем на указатель, нужно объявить соответствующим образом. Для этого достаточно
- •// Использование многоуровневой
- •Неинициализированные указатели
- •Некорректное сравнение указателей
- •int first[10]; int second[10]; int *p, t;
- •Не забывайте об установке указателей
- •Узелок на память.
Указатели
При рассмотрении темы указателей нам придется использовать такие понятия, как размер базовых С++- типов данных.
Символы занимают в памяти один байт, Целочисленные значения — четыре, Значения с плавающей точкой типа float — четыре,
Значения с плавающей точкой типа double — восемь.
Указатели — это переменные, которые хранят адреса памяти.
Чаще всего эти адреса обозначают местоположение в памяти других переменных.
Например, если х содержит адрес переменной у, то о переменной, х говорят, что она "указывает" на у.
Указатель — это переменная,
которая содержит адрес другой
переменной.
Формат объявления переменной- указателя таков:
тип *имя_переменной;
Чтобы объявить переменную р указателем на int-значение, используйте следующую инструкцию.
int *р;
Для объявления указателя на float- значение используйте такую инструкцию.
float *р;
Базовый тип указателя определяет тип данных, на которые он будет
ссылаться.
Операторы, используемые с указателями
С указателями используются два оператора: "*" и "&" Оператор "&"
— унарный. Он возвращает адрес памяти, по которому расположен его операнд.
balptr = &balance;
в переменную balptr помещается
Второй оператор работы с указателями (*) служит дополнением к первому (&). Это также унарный оператор, но он обращается к значению переменной, расположенной по адресу, заданному его операндом.
value = *balptr;
переменной value будет присвоено значение переменной balance, на
#include <iostream> using namespace std; int main()
{
int balance;
int *balptr;
int value;
balance = 3200;
balptr = &balance;
value = *balptr;
cout << "Баланс =" << value <<'\n';
return 0;
}
При выполнении этой программы получаем такие результаты: Баланс равен: 3200
Операции, выполняемые с помощью указателей, часто называют операциями непрямого доступа, поскольку мы косвенно получаем доступ к переменной посредством некоторой другой переменной.
Операция непрямого доступа —
это процесс использования
указателя для доступа к некоторому объекту.