Переименование типов

Текст лекции.

Лекция 4. Производные типы. Тип указатель: указатели на объекты.

Перелік джерел

Перелік стандартів

§ANSI X3.60-1978 «FOR MINIMAL BASIC»

§ISO/IEC 6373:1984 «DATA PROCESSING — PROGRAMMING LANGUAGES — MINIMAL BASIC»

§ANSI X3.113-1987 «PROGRAMMING LANGUAGES FULL BASIC»

§ISO/IEC 10279:1991 «INFORMATION TECHNOLOGY — PROGRAMMING LANGUAGES — FULL BASIC»

§ANSI X3.113 INTERPRETATIONS-1992 «BASIC TECHNICAL INFORMATION BULLETIN # 1 INTERPRETATIONS OF ANSI 03.113-1987»

§ISO/IEC 10279:1991/ Amd 1:1994 «MODULES AND SINGLE CHARACTER INPUT ENHANCEMENT»

§

A Manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System (PDF). — Dartmouth College Computation Center, 1964.(англ.)

§Lien, David A. The Basic Handbook: Encyclopedia of the BASIC Computer Language 3rd ed.. — Compusoft Publishing, 1986. ISBN 0-932760-33-3.(англ.)

§Kemeny, John G. Back To BASIC: The History, Corruption, and Future of the Language. — С. 141 pp. — Addison-Wesley, 1985. ISBN 0-201-13433-0.(англ.)

§Sammet, Jean E. Programming languages: History and fundamentals. — Englewood Cliffs, N.J. : Prentice-Hall, 1969.(англ.)

 
E ↑→
F ↓→
G ↓←
H ↑←

Краткая аннотация лекции.

В лекции рассматриваются определение и виды указателей, способы объявления, инициализация указателей на объекты, методы доступа к данным через указатели, размещение указателей и адресуемых ими объектов в памяти, операции над указателями.

Цель лекции: изучить классификацию производных типов, тип указатель и соотношения между именами, адресами и значениями переменных, научиться использовать указатели в программных кодах на языке C++.

В языке С++ разрешено наряду со стандартными использование производных типов, полученных на основе более простых базовых типов. Производные типы можно условно подразделить на две группы:

Непосредственно производные типы. Эти типы являются производными от некоторых существующих типов, реализуя типы указателей, ссылки, функции преобразования типов. В группу непосредственно производных типов входят:

· массивы;

· указатели;

· ссылки;

· перечисления.

Составные производные типы. В группу составных производных типов входят типы, являющиеся производными от различных существующих или ранее объявленных типов:

· классы;

· структуры;

· объединения.

 

В некоторых программных кодах бывает удобно вводить новые обозначения имен отдельных используемых типов данных. Задавать новое имя типу можно с помощью ключевого слова typedef.

Синтаксис:

typedef Тип НовоеИмяТипа[Размерность];

Например:

typedef unsigned int UNIT;

typedef char Msg[100];

Такое имя можно затем использовать так же, как и стандартное имя типа:

UNIT a,b,c;//переменные типа unsigned int

Msg str[10];//массив из 10 строк по 100 символов

 

Рассмотрим тип указатель. Указатели являются специальными объектами в программах на С++. Они предназначены для хранения адресов памяти.

Рассмотрим пример (рис.1). Когда компилятор обрабатывает оператор определения переменной, например, int a=10;, то в памяти выделяется участок памяти в соответствии с типом переменной и записывается в этот участок указанное значение (размер типа int не менее 2 байтов и зависит от реализации). Все обращения к переменной a компилятор заменит на адрес области памяти, в которой хранится эта переменная. Операция &a является операцией взятия адреса ее операнда.

 
 

 


Рис. 1. Адресация в С++

 

Программист может определить собственные переменные для хранения адресов областей памяти. Такие переменные называются указателями.

Указатель – именованный объект, предназначенный для хранения адреса области памяти (объекта, непоименованной области оперативной памяти либо точки входа в функцию).

Указатель не является самостоятельным типом, он всегда связан с каким-то другим типом. Указатели делятся на две категории:

· указатели на объекты;

· указатели на функции.

Эти категории указателей отличаются друг от друга свойствами и правилами манипулирования. Каждый указатель имеет соответствующий тип.