Указатели. Переменные. Типы переменных

Переменные. Типы переменных.

Переменные - поименованные значения, которые могут изменяться в процессе выполнения программы. Их объявление также выпол­няют в разделе описаний программы, причем при этом указывается не толь­ко идентификатор переменной, но и ее тип. Обращение к перемен­ным также осуществляют по идентификатору.

Тип переменной определяет возможный набор значений данной пере­менной, размер ее внутреннего представления и множество операций, кото­рые могут выполняться над переменной.

Различают простые и структурные типы переменных.

Структурные типы делятся на массивы, строки, записи, множества, файлы, указатели.

Простые (скалярные) типы описывают упорядоченные наборы значений. Они делятся на порядковые и вещественные.

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

Порядковые типы переменных делятся на стандартные, перечисляемые и отрезки. Стандартные: целые типы, булевские типы, символьный тип.

Перечисляемый тип формируется из значений, определенных программистом при объявление типа.

Тип переменных отрезок определяется как диапазон значений уже определенного типа.

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

Динамические переменные. Иногда заранее не известна область памяти необходимой для хранения тех или иных данных(Переменных). Это знание может быть получено только в процессе выполнения программы. В этом случае используются динамическое выделение памяти под переменные и другие данные (символьные строки, структуры, массивы, эл-ты класса, ф-ии)

Пример:

$var = "Bob";
$Var = "Joe";
echo "$var, $Var";

Указатели - единственное исключение из общего правила, согласно ко­торому все ресурсы перед использованием должны быть описаны. Память персонального компьютера IBM PC совместимых представляет собой последовательность нумерованных байтов. Для обращения к конкретному байту необходимо знать его номер, который называют его физическим адресом. В языках программирования для работы с адресами используется специальный тип данных – указатели.

Различают указатели двух типов: типизированные и нетипизированные. Типизированные указатели содержат адреса, по которым в памяти размещаются данные определенных типов. Использую эти указатели с данными указанных типов, можно выполнять операции, предусмотренные базовым типом.

Нетипизированные указатели хранят просто адреса, которые не связаны с данными конкретного типа.

Для указателей, которые не хранят никаких адресов, обычно вводится константа нулевой адрес(пример Delphi: nil)

Над указателями возможны следующие операции:

-Присваивание. При выполнении этой операции указателю присваивается значение другого указателя или нулевой адрес. Допускается присваивать указателю только значения того же или неопределенного типа

-Получение адреса. Результатом операции является – нетипизированный указатель, который можно присвоить любому указателю.

-Доступ к данным по указателю (операция разыменования). При проведении операции разыменования получаем доступ к значению переменной хранящейся по определенному указателем адресу. Нетипизированные указатели разыменовывать нельзя.

Из всех операций отношения для указателей доступны операции равенства и неравенства. Эти операции проверяют соответственно равны или не равны адреса.

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

Пример:

int i = 5;

int* p = &i;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: