Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_2_изд_испр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.27 Mб
Скачать

3.1.4. Символьные данные

Различают представления отдельных символов и последовательностей символов (строк). 1 символ занимает в памяти 1 байт. Каждый символ кодируется целым значением в диапазоне: 0 – 255. Символы с кодами от 0 до 127 представляют собой международную кодовую таблицу ASCII, которая едина для всех стран. Диапазон 128 – 255 содержит символы национальных алфавитов, спецсимволы и др. Эта кодовая страница специфична для различных стран.

Замечание. В обоих языках существует набор символов, каждый из которых занимает в памяти 2 байта. Они используются для представления символов национальных алфавитов, в основном, иероглифического типа (Япония, Китай, Корея и т.п.). Такая кодировка носит название Unicode. В данной версии языка Basic для хранения одного символа используется эта кодировка и отводится 2 байта памяти.

В языке C литерал одиночного символ имеет вид: символ. Для записи символов, не имеющих графического представления или приводящих к неправильной трактовке, используется формат вида ‘\символ.

Пример.

a’ ‘C’ ‘\’’ ‘\”’ ‘\\’

\n – новая строка,

\t’ – табуляция,

\r – возврат каретки (переход к началу той же строки).

В языке Basic для одиночных символов также применяется тип char, однако он требует 2-х байтов памяти и не относится к целому типу. Литерал для одиночного символа имеет вид “<символ>”C.

Пример.

“a”C

Для строк (последовательностей символов) в обоих языках формат записи литералов одинаков:

"строка"

Пример.

"Это строка!" "Запись в Си и Бэйсике одинакова"

В языке C для того, чтобы транслятор мог обнаружить конец строки в памяти, он добавляет в ее "хвост" символ '\0', поэтому строка имеет длину на 1 байт больше. В языке Basic каждая строка переменной длины, к которым следует отнести литералы, дополнительно хранит 10 байтов информации о длине строки.

Пример.

"Это строка!" – длина 12 байтов.

Замечание. В языке C следует различать записи 0 и '0'. В первом случае значение в памяти будет действительно равно 0, во втором – 48 – ASCII-код символа 0. Записи 0 и '\0' равнозначны.

В языке C два подряд расположенных строчных литерала автоматически объединяются в 1 строку.

Пример.

"Уральский социально-экономический институт"

"Академии труда и социальных отношений" Это 1 строка!

Для представления переменных, значениями которых являются одиночные символы, в языке C используется тип unsigned char (character), который в общем случае относится к целому типу. Переменных, значениями которых являются строки, в языке C нет. Для этой цели используются массивы данных типа char (о них позже).

В языке Basic для строк применяется тип string. Максимальная длина таких строк может достигать 2 млн символов. Отметим, что для работы со строками так же, как и в языке C, можно использовать массивы типа char.

3.1.5. Дополнительные типы данных

Описанные выше типы данных можно считать основными. Они используются в той или иной форме во всех языках программирования. В языке C (C++) определены также следующие типы: указатели, ссылки, перечисления (enum), void; в языке Basic: перечисления (enum), даты (date), универсальный (object) и десятичный (decimal). Они будут введены позже по ходу изложения.