Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯП - ПОИТ (Бахтизин) часть 1 редакт.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.76 Mб
Скачать

1.3. Данные типа char

Данные типа char занимают в памяти 1 байт. По стандарту ASCII код от 0 до 255 в этом байте задает один из 256 возможных символов. Первым 128 значениям (коды символов от 0 до 127) соответствуют управляющие символы (от 0 до 31), строчные и заглавные буквы латинского алфавита, цифры, а также пунктуационные знаки, знаки элементарных арифметических операций и т.п. Остальные 128 значений могут занимать буквы другого языка, например, русского. По умолчанию тип char воспринимается как unsigned char.

Наиболее часто используемыми управляющими символами являются символ конца строки ‘\0’, автоматически помещаемый в конце строки и символ перехода на новую строку ‘\n’.

Константой типа char является символ, заключенный в одинарные кавычки, например: ‘а’, ‘5’. Значением символьной константы является целое число (код символа), поэтому над символьной константой определены как операции сравнения, так и все остальные операции, определенные над целыми числами.

Пример объявления переменных типа char:

char bukva = ‘a’;

signed char s;

Коды цифр и латинских букв идут в порядке возрастания, т.е.

’0’<’1’ <’2’<…<’9’<…<’A’<’B’<’C’<…<’Z’<’a’<’b’<’c’<…<’z’

При работе с таблицей ASCII надо помнить, что существует два различных представления символа в таблице: десятичный номер по порядку (от начала таблицы) и шестнадцатеричное число, показывающее, на пересечении какой строки и столбца в таблице находится символ. Например, символ ‘0’ будет иметь в программе на Си целочисленное значение типа int, равное его порядковому номеру в таблице, т.е. 48. В то же время, представление символа ‘0’ является шестнадцатеричным двухразрядным числом, которое складывается из значения строки (старший разряд числа) – ‘3’, и значения столбца (младший разряд числа) – ‘0’ таблицы ASCII. Таким образом, символ ‘0’ представляется как 0x30, т.е. число 30 в шестнадцатеричной системе счисления или же число 48 в десятичной системе счисления.

Первые 128 значений таблицы кодов ASCII:

1.4. Модификаторы доступа const и volatile

Язык Си предлагает программисту два модификатора доступа при объявлении переменных: const и volatile. Они помогают определить переменные, которые не должны изменяться в ходе выполнения программы (const), и переменные, способные при выполнении программы изменять своё значение (volatile). Использование модификатора const помогает избегать трудноуловимых ошибок программирования и повышать читабельность исходного кода программы.

Например, если во многих местах программы используется одна и та же константа (например, вещественное число с большим количеством знаков после запятой), то при многократном наборе её значения с клавиатуры высока вероятность допустить опечатку. Если же объявить для хранения этого значения переменную с модификатором const и в дальнейшем обращаться к константе через эту переменную, то ошибка в наборе имени переменной будет обнаружена на этапе компиляции.

Поскольку переменная с модификатором const не может изменяться в ходе выполнения программы, её значение задаётся один раз, при её объявлении:

const int maxCount = 32767, step = 70;

const long double pi = 3.1415926535897932384626433832;

В остальном поведение переменной, объявленной с модификатором const, ничем не отличается от поведения обычной переменной.

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

volatile unsigned int timer;

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