57
6.
Что такое символьный тип данных, допустимые операции, строковый
тип?
7.
Зачем нужно преобразование типов данных в программах? Приведите
примеры.
Указатели
В ряде языков программирования, например Си, Паскаль, С#, допустимо
использование так называемых
указателей. Они относятся к еще одной
разновидности встроенных типов данных. Указатель — константа или
переменная, задающая адрес в памяти, где располагаются некоторые
другие объекты (данные, функция).
Допустимо, в частности, объявить некую переменную, которая будет
указывать на находящееся в памяти целое.
Пример на языке С++:
int* pA; // переменная
pA указывает на целое число
Теперь можно присваивать переменной-указателю значение ссылки (адрес)
целого и после этого обращаться к объекту в памяти через указатель на
него.
Пример на языке С++:
int a=10;
pA=&a; //
pA теперь указывает на a
*pA=100; // эта запись присваивает переменной a значение 100
Смешивать типы при использовании указателей в общем случае
недопустимо. Ссылки могут использоваться и для составных структур
данных, в частности, они активно применяются при обработке массивов и
списков.
В языках программирования встречается предопределенное наименование
для пустой ссылки — указателя, еще не связанного с каким-либо объектом
в памяти, часто это NULL или NIL.
Контрольные вопросы
1.
Что такое указатели? Приведите пример их использования в языках
программирования.
2.
Что такое пустой указатель?
Перечисления
58
В некоторых языках программирования допускается задание так
называемых
перечислений. Бывает удобно называть объекты в программе
привычными именами, а не раз и навсегда заданными наименованиями
типов. Перечисления отвечают указанной потребности, например:
Type DAY=(Monday,Tuesday, Wednesday,Thursday, Friday, Saturday,
Sunday); (*
Паскаль*)
type Cardsuit is (clubs, diamonds, hearts, spades); --
Ада
enum MyColors {Red = 100, Green = 110, Blue = 120} // C#
В них явным образом указывается набор значений, допустимых для данной
переменной, — фактически, создается новый тип данных. После его
введения допускается объявление переменной данного типа наряду с
базовыми, например:
MyColors cwet=Green; // С#
Обычно при компиляции значения перечислений представляются целыми
числами. В зависимости от языка программирования представление может
быть либо полностью скрыто от программиста, либо доступно ему,
например, путем принудительного преобразования значения типа
«перечисление» к значению типа «целое число», либо даже управляемо
явно, как показано в примере.
При попытке присвоить переменной перечислимого типа значение, не
указанное при его определении, будет выдаваться ошибка. Это позволяет
еще более повысить надежность программ по сравнению с простой
статической типизацией. Перечислимый тип используется довольно
широко и воспринимается как сама собой разумеющаяся особенность
современных языков программирования. Тем не менее не обходится без
критики со стороны теоретиков и практиков программирования. При
разработке языка программирования Оберон перечислимые типы попали в
список особенностей, которые были удалены из него. Никлаус Вирт,
разработчик языка, назвал следующие причины: «Во все возрастающем
числе программ непродуманное использование перечислений… приводит
к демографическому взрыву среди типов, что, в свою очередь, ведет не к
ясности программ, а к многословию».
Достарыңызбен бөлісу: