Составители:
Рубрика:
§ 2.4. Указатели
Специальными объектами в программах на языке С++ являются
указатели. При-
менение указателей является одной из основных особенностей программирования на
языке Си и С++. Значениями указателей служат адреса участков памяти, выделенных
для объектов конкретных типов. Именно поэтому в определении и описании указателя
всегда присутствует обозначение соответствующего ему типа. Эта информация позволя-
ет в последующем с помощью указателя получить доступ ко всему сохраняемому объек-
ту в целом. В простейшем случае определение и описание указателя на некоторый объ-
ект имеет вид:
type
*имя_указателя;
где type - обозначение типа, имя_указателя - идентификатор, * - унарная операция об-
ращения по адресу. Признаком указателя служит символ *. Пример.
int *1pi, *2pi, n;
В данном примере определяются два указателя на объекты типа int и переменная n
типа int. При определении указателя в возможно выполнять его инициализацию. В дан-
ном случае командная строка будет иметь вид:
type
*имя_указателя инициализатор;
В качестве инициализатора используется константное выражение, частными слу-
чаями которого являются:
-
явно заданный адрес участка памяти;
-
указатель, уже имеющий значение;
-
выражение, позволяющее получить адрес объекта с помощью операции &.
Примеры.
int x=5; /* переменная x типа int равная 5 */
int *p=&x; /* инициализированный указатель на объект типа int */
char *cr = (char *)0xF000FFFE; /* указатель cr при инициализации получает зна-
чение адреса байта, содержащего сведения о типе компьютера (только для IBM PC) */
char *t(NULL); /* нулевой указатель на объект типа char*/
Операция & называется ссылкой. Ссылка представляет собой синоним имени, ука-
занного при инициализации. Формат объявления ссылки:
тип & имя;
где тип - это тип величины, на которую указывает ссылка, & - оператор ссылки,
означающий, что следующее за ним имя является именем переменной ссылочного типа,
например:
int kol;
int& pal = kol; // ссылка pal - альтернативное имя для kol
const char& CR = '\n'; // ссылка на константу
Следует отличать адресные операции * и &. Значением выражения *p является пе-
ременная, адресуемая указателем p. Значением выражения &v является адрес перемен-
ной v.
39
§ 2.4. Указатели
Специальными объектами в программах на языке С++ являются указатели. При-
менение указателей является одной из основных особенностей программирования на
языке Си и С++. Значениями указателей служат адреса участков памяти, выделенных
для объектов конкретных типов. Именно поэтому в определении и описании указателя
всегда присутствует обозначение соответствующего ему типа. Эта информация позволя-
ет в последующем с помощью указателя получить доступ ко всему сохраняемому объек-
ту в целом. В простейшем случае определение и описание указателя на некоторый объ-
ект имеет вид:
type *имя_указателя;
где type - обозначение типа, имя_указателя - идентификатор, * - унарная операция об-
ращения по адресу. Признаком указателя служит символ *. Пример.
int *1pi, *2pi, n;
В данном примере определяются два указателя на объекты типа int и переменная n
типа int. При определении указателя в возможно выполнять его инициализацию. В дан-
ном случае командная строка будет иметь вид:
type *имя_указателя инициализатор;
В качестве инициализатора используется константное выражение, частными слу-
чаями которого являются:
- явно заданный адрес участка памяти;
- указатель, уже имеющий значение;
- выражение, позволяющее получить адрес объекта с помощью операции &.
Примеры.
int x=5; /* переменная x типа int равная 5 */
int *p=&x; /* инициализированный указатель на объект типа int */
char *cr = (char *)0xF000FFFE; /* указатель cr при инициализации получает зна-
чение адреса байта, содержащего сведения о типе компьютера (только для IBM PC) */
char *t(NULL); /* нулевой указатель на объект типа char*/
Операция & называется ссылкой. Ссылка представляет собой синоним имени, ука-
занного при инициализации. Формат объявления ссылки:
тип & имя;
где тип - это тип величины, на которую указывает ссылка, & - оператор ссылки,
означающий, что следующее за ним имя является именем переменной ссылочного типа,
например:
int kol;
int& pal = kol; // ссылка pal - альтернативное имя для kol
const char& CR = '\n'; // ссылка на константу
Следует отличать адресные операции * и &. Значением выражения *p является пе-
ременная, адресуемая указателем p. Значением выражения &v является адрес перемен-
ной v.
39
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »
