Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
119
Добавлен:
13.03.2016
Размер:
470.02 Кб
Скачать

1.2.2. Типы данных в Си

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

Существование двух числовых типов (целого и вещественного) связано с двумя возможными формами представления чисел в памяти компьютера.

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

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

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

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

В Си имеется 4 базовых типа:

char- символьный тип;

int - целый тип,

float- вещественный тип одинарной точности,

double- вещественный тип двойной точности.

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

Таблица 1. Стандартные целые типы данных Си

Тип данных

Размер,

байты

Диапазон значений

unsigned char

1

0...255

char, signed char

1

-128...127

unsigned int, unsigned

2

0...65535

int, signed int, short int, short

2

-32768...32767

unsigned long

4

0...4294967295

long, long int

4

-2147483648...2147483647

Интересно, что в Си тип charв зависимости от контекста может использоваться как символьный или как целый тип.

Таблица 2. Стандартные вещественные типы данных Си

Тип данных

Размер,

байты

Диапазон порядка

Число цифр

мантиссы

float

4

-38...+38

7

double

8

-308...+308

15

long double

10

-4932...+4932

19

Замечание. Для написания программ первой части пособия нам потребуются в основномдва типа: float и int.