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

1. Основные типы данных

1.1. Общие сведения

Язык программирования Си предоставляет обширные возможности для работы с различными видами данных. Данные представляют собой константы или переменные.

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

Имя переменной – это идентификатор, представляющий собой любую последовательность цифр, больших и малых букв латинского алфавита и символов подчеркивания, начинающуюся обязательно буквой или символом подчеркивания. Длина идентификатора может быть произвольной, но значимыми являются первые 32 символа.

Типы данных в Си можно условно разделить на определенные группы:

  1. тип void;

  2. тип «функция»;

  3. скалярные типы (арифметические типы, перечисления, указатели);

  4. агрегированные или составные типы (массивы, структуры, объединения).

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

Для того чтобы выбранный тип данных наиболее точно соответствовал его назначению в программе, применяют модификаторы типа. В Си имеется четыре вида модификаторов: signed (знаковый), unsigned (беззнаковый), long (длинный) и short (короткий). Чтобы их использовать, достаточно перед названием типа написать любой модификатор, например, так: long int.

Базовый тип int может быть изменен любым из этих модификаторов, тип char – только модификаторами signed и unsigned, а тип double – лишь модификатором long. Модификатор signed означает, что числа будет со знаком. Если в знаковом бите содержится 0, то число положительное, если 1 – то отрицательное. Модификатор unsigned означает, что старший бит числа будет использоваться не для хранения его знака, а для расширения его модульной части. В результате максимальное значение, представимое в переменной данного типа, увеличивается вдвое.

1.2. Данные типа int

Данные типа int хранят целые числа. Представление этого типа в памяти можно символически представить так:

Видно, что старший бит – знаковый, таким образом, диапазон значений (при размере int в 2 байта) будет -215 .. +215-1 (-32768..+32767) . По умолчанию тип int воспринимается как signed int.

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

Соответственно диапазон значений возрастает: от 0 до 216-1 (0..65535).

При применении к типу int модификатора long

Диапазон допустимых значений: -231 … +231-1

В случае, когда используется unsigned long

Диапазон допустимых значений: 0 … +232-1

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

int a, b;

signed long int c;

В языке Си можно использовать как десятичные, так и шестнадцатеричные и восьмеричные целые константы. Признаком восьмеричной константы в программе на языке Си является цифра 0, предшествующая значению числа в восьмеричной записи, например, 0456. Для записи шестнадцатеричной константы надо записать число, обязательно начинающееся со знаков 0x или 0X, за которым следует целое число, представленное в шестнадцатеричной системе исчисления, например, 0x15А. Если в записи константы встречается суффикс L или l, то константа интерпретируется как long. Если суффикс U или u, то, как беззнаковая, например 0x15ALU.