Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Максимов_электронный_учебник_текст.doc
Скачиваний:
41
Добавлен:
01.06.2015
Размер:
3.24 Mб
Скачать

2.3. Типы данных

Понятие типа данных является одним из ключевых в языке программирования Си++. Любая переменная, константа, объект, определенный пользователем, неименованный объект, являющийся результатом выполнения какой-либо операции, всегда относится к какому-то типу. Зная тип объекта, всегда можно сказать сколько байт памяти отводится под объект, в каком диапазоне значений могут лежать значения объекта, какое множество операций определено над объектом данного типа, т.е. информация о типе объекта даёт нам представление о его свойствах.

Для определения и описания типа объекта (переменной) используются следующие ключевые слова (имена типов):

сhar (символьный);

short (короткий целый);

int (целый);

long (длинный целый);

float (вещественный);

double (вещественный с удвоенной точностью);

void (отсутствие значения).

Перед именем символьного и целых типов может стоять ключевое слово signed (знаковый – значения объекта могут меняться от –N до N-1), или unsigned (беззнаковый  значения объекта могут меняться от 0 до 2*N-1), которое позволяет выбрать способ учёта знакового разряда. По умолчанию символьный и целые типы являются знаковыми, т.е., например, записи signed int и int являются полными синонимами, поэтому на практике ключевое слово signed почти не употребляется. Напротив, использование ключевого слова unsigned позволяет сделать символьный и целые типы беззнаковыми, поэтому оно используется довольно часто. В выражении unsigned int и signed int слово int можно опустить, компилятор будет подразумевать его по умолчанию.

У вещественных данных также есть тип, состоящий из двух ключевых слов, long double, точность которого выше чем у double.

Типы, введенные с помощью взятых по отдельности или в допустимом сочетании ключевых слов char, short, int, long, signed, unsigned, float, double, void, называются базовыми (фундаментальными, встроенными).

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

Таблица 2.1

Таблица целых и вещественных типов данных

Тип данных

Размер в байтах

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

Примечание – назначение типа

unsigned char

1

0…255

Небольшие целые числа и коды символов

сhar

1

-128…127

Очень малые целые числа и ASCII коды

enum

2

-32768… 32767

Упорядоченные наборы целых чисел

unsigned int

2

0 …65535

Большие целые и счетчики циклов

short int

2

-32768… 32767

Небольшие целые, управление циклами.

int

2

-32768… 32767

Небольшие целые, управление циклами

unsigned long

4

0…4294967295

Астрономические расстояния

long

4

-2147483648...2147483648

Большие целые, популяции

float

4

3.4E-38…3.4E+38

Научные расчёты (7 значащих цифр)

double

8

1.7E-308…1.7E+308

Научные расчеты (15 значащих цифр)

long double

10

3.4E-4932…3.4E+4932

Финансовые расчёты (19 значащих цифр)

Из табл. 2.1 видно, например, что объект типа char является объектом символьного типа, занимает в памяти 1 байт и его значения лежать в диапазоне от –128 до 127. Обычно этот тип используется для небольших целых чисел и ASCII кодов.

Количество значащих цифр  это количество цифр, которым представлено число. Так, в числе 2147483648 десять значащих цифр, в числе 0.789 четыре значащих цифры. Следует отметить, что объект типа long имеет больше значащих цифр, чем объект типа float. Поэтому при переходе от типа long к типу float может быть потеряна точность.

Приведем примеры нескольких вариантов определения с помощью базовых типов переменных (объектов) различных типов (объектов):

unsigned char sym; /*В этой строке определяется переменная sym типа unsigned char. Это значит, что переменная занимает в памяти 1 байт и диапазон её возможных значений лежит в интервале от 0 до 255 (см. табл. 2.1). Sym – это идентификатор (имя ) переменной придуманное программистом. В конце строки программы стоит точка с запятой, символизирующая конец выражения. */

char Sm1, Sm2, Sm3 = 50; /*В строке программы определены три переменные типа char (свойства см. табл. 2.1). Sm1, Sm2, Sm3 – идентификаторы (имена) переменных. Переменная Sm3 инициализирована неименованной десятичной константой 50 типа int. Значение переменных Sm1, Sm2 неопределено, т. е. может быть любым числом в допустимом для этого типа диапазоне. */

double pi = 3.14159; /* Определена и инициализирована переменная pi типа double. Значение 3.14159 – это неименованная десятичная константа типа double. Как определить тип неименованной константы по её внешнему виду станет ясно при прочтении следующего параграфа. */

По аналогии с приведенными примерами можно вводить переменные и других базовых типов. Более подробное и полное описание таких понятий как определение, описание, область существования, области видимости переменных отложим на некоторое время.