Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Гуревича по с++, первый сем / Лекции ОАиП Гуревич (I сем.) №1.doc
Скачиваний:
70
Добавлен:
15.06.2014
Размер:
189.44 Кб
Скачать

2. Переменные и константы. Типы данных

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

Род информации, которую способна хранить ячейка, определяется ее типом.

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

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

Тип данных определяет:

  • внутреннее представление данных в оперативной памяти;

  • совокупность значений (диапазон), которые могут принимать данные этого типа;

  • набор операций, которые допустимы над такими данными.

Основные типы базовых данных: целый – int, вещественный с одинарной точностью – float и символьный – char.

В свою очередь, данные целого типа могут быть короткими – short, а также длинными – long . Кроме того, при любой длине данные целых и символьного типов могут быть знаковыми - signed либо беззнаковыми – unsigned (по умолчанию они считаются знаковыми, поэтому слово signed необязательно и обычно опускается). Вещественные же данные могут иметь удвоенную точность – double.

Сложные типы данных – массивы, структуры – struct, объединения или смеси – union.

Данные целых и вещественных типов находятся в определенных диапазонах, т.к. занимают разный объем оперативной памяти. Вещественные типы при этом обладают еще конечной точностью хранения данных, т.е. верно хранят лишь первые несколько цифр числа; для хранения остальных (чье количество бывает даже бесконечным - например, у числа π , или у числа ⅓ ) не хватает места. В Табл. 1. приведены свойства различных типов для системы программирования C++ Builder. В других системах программирования, поддерживающих язык Си, может отличаться размер того или иного конкретного типа, например int, и соответственно будет отличаться его допустимый диапазон значений (например, тип long int может превосходить по размеру тип int). Однако последовательность возрастания размеров и точности для каждой группы типов всегда одинакова:

char ≤ short int ≤ int ≤ long int ≤ long long int

float ≤ double ≤ long double

Таблица 1.

Тип данных

Размер (байт)

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

Точность, десятичных знаков

сhar

1

-128 … 127

unsigned сhar

1

0 … 255

short int

2

-215… 215–1 (-32768…32767)

int

4

-231…231–1 (-2147483648…2147483647)

long int

4

-231…231–1 (-2147483648…2147483647)

long long int

8

–263... 263–1 (примерно )

unsigned short int

2

0…216–1 (0…65535)

unsigned int

4

0…232–1 (0…4294967295)

unsigned long int

4

0…232–1 (0…4294967295)

float

4

±3,14*10-38…±3,14*1038

7-8

double

8

±1,7 *10-308… ±1,7 *10308

15-16

long double

10

± 1,1 * 10-4932… ± 1,1 * 104932

19-20

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