Символьные строки
Беззнаковый тип для целых данных
Обычно целый тип охватывает и отрицательные и положительные значения. Например, тип int имеет диапазон значений от -32768 до 32767. Иногда отрицательные значения не нужны. Тогда имеется возможность вдвое увеличить диапазон положительных значений, т. е. от 0 до 65535. Это можно сделать если описать тип как беззнаковый.
БНФ:
имя_беззнакового_типа =
"unsigned "("int"|"long"|"short"|"char" )
Пример:
unsigned int ab, c, d;
Последовательность символов, заключенная в двойные кавычки, представляет собой символьную строку. Двойные кавычки в строку не входят. Например, "Это строка символов". Первая кавычка указывает на начало строки, последняя на ее окончание.
Строка символов хранится в памяти ЭВМ как массив символов.
Массив символов представляет собой последовательность символов, расположенных в непрерывной области памяти и объединенных общим именем:
Э | т | о | С | т | р | о | к | а | с | и | м | в | о | л | о | в | \0 |
В конце строки символов компилятор ставит ноль-символ, т.е. символ, код которого равен 0. Он служит признаком конца строки.
Значение символьной строки - это адрес ее первого символа.
При трансляции программы компилятор разместит все символьные строки в памяти, а в программу вместо них подставит соответствующие адреса (т.е. значения символьных строк!).
Символьная строка является константой, т.е. ее невозможно изменить в процессе выполнения программы. На практике часто необходимо выполнять различные действия над символьными строками: например запросить ввод имени пользователя, которое затем используется в выводной информации. Подобные операции возможны, если описать переменную как массив символов.
БНФ:
описание_массива_символов =
"char " имя "["размер"]" { "," имя "["размер"]" } ";"
где размер - максимально возможное количество символов плюс 1 для размещения нуль символа.
Пример:
char name[50], fio[81];
Переменная name способна хранить строку из 49 символов, fio из 80. Значениями переменной name и fio являются адреса областей памяти, выделенных для хранения соответствующих строк.