Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1. Навроцкий А.А. Основы алгоритмизации и программирования в среде Visual C++.pdf
Скачиваний:
54
Добавлен:
26.03.2016
Размер:
3.6 Mб
Скачать

7. Использование указателей

7.1. Объявление указателя

Память компьютера представляет собой массив последовательно пронумерованных ячеек. При объявлении данных в памяти выделяется непрерывная область для их хранения. Например, для переменной типа int выделяется участок памяти размером 4 байта. Номер первого байта, выделенного под переменную участка памяти, называется адресом этой переменной.

Указатель – это переменная, значением которой является адрес участка

памяти. Формат объявления указателя:

Р

Тип_данного *имя_указателя;

Например:

И

int *a; double *b, *d; char *c;

 

На один и тот же участок памяти может ссылаться любое число указате-

лей, в том числе и различных типов. Допустимо описыватьУпеременные типа

указатель на указатель (указатель на ячейку памяти, которая в свою очередь со-

держит адрес другой ячейки памяти). Например:

Г

 

int *um1, **um2, ***um3;

 

 

 

Б

В языке Си существует три вида у

з телей:

 

1.

Указатель на объект известного

 

.

 

2.

 

 

 

 

 

типа

 

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

не определен.

 

к

 

 

3.

Указатель на функцию. Позволяет обращаться с функциями, как с пе-

ременными.

7.2. Операциит

над указателями

 

 

 

о7.2.1. Унарные операции

Над указате

можно провести две унарные операции:

1.

 

 

ями

 

 

 

 

 

«&» (взять адрес). Операция позволяет получить адрес переменной.

2.

«*» (операциял разадресации). Позволяет получить доступ к величине,

расположенной по указанному адресу.

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

7.2.2. Арифметические операции и операции сравнения

Привыполнении арифметических операций с указателями автоматически

учитывается размер данных, на которые они указывают.

Б

 

 

 

 

 

 

 

Инкремент и декремент. Перемещает указатель к следующему или предыдущему элементу массива.

Например:

int *um, a[5] = {1,2,3,4,5}; um = a;

42