Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / WORD / Лекции по ЯП (часть 3).doc
Скачиваний:
135
Добавлен:
15.04.2015
Размер:
1.34 Mб
Скачать

Типы данных

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

Кроме того, в Си в отличие от Паскаля, есть правила умолчания. Так, если забыли описать переменную, то по умолчанию она получит тип Signed int.

Классификация типов данных

Модификаторы типа:

      • short (короткий)

      • long (длинный)

      • signed (со знаком)

      • unsigned (без знака)

Целые

(пределы их значений в Си хранятся в limits.h)

unsigned char (1 байт) 0 - 255

unsigned char (1 байт) 0 – 255

Замечания:

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

d=c-'s';

для представления русских символов требуется unsigned char (по умолчанию будет signed char)

signed char 1 байт (-128 .. +127)

Замечание: можно явно не указывать signed. Оно подразумевается по умолчанию

short (2 байта) -32768..32767 (всегда 2 байта)

int (2 байта) -32769..32767 (или 4 байта)

по умолчанию размер int совпадает с размером слова на данной ЭВМ (на 16-разр. ЭВМ - 16 бит, на 32-разр. ЭВМ - 32 бит = 4 байта)

unsigned int (2 байта) 0..65535. У констант суффикс U : 325U

long (4 байта) -2^31..2^31-1. У констант суффикс L: 75000L

unsigned long (4 байта) 0..(2^32-1). У констант суффикс UL: 125000UL

В ASNI C-99 long long – 8 байт.

Вещественные

(пределы их значений в Си хранятся в float.h)

Имя типа

размер

диапазон

float

4 байта

±3.4E+308

double

8 байт

±1.7E+308

long double

10 байт

unsigned long

8 байт

Логический

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

В Borland C++ есть тип BOOL со значениями false и true.

Диапазоны представления данных

Тип

Размер,

бит

Диапазон

unsigned char

8

0…255

char

8

128127

enum

16

32 76832 767

unsigned short

16

065535

short

16

3276832767

unsigned int

16

32

0…65535

04 294 967 295

int

16

32

32 768…32 767

2 147 483 648 …2 147 483 647

unsigned long

32

04 294 967 295

long

32

2 147 483 648 …2 147 483 647

float

32

3.4*10–383.4*10+38

double

64

1.7*10–3081.7*10+308

long double

80

1.7*1049321.7*10+4932

pointer

16

32

(указатели near, _cs, _ds, _es, _ss)

(указатели far, huge)

Объявление переменных

Основная форма объявления переменных имеет вид

type <список_переменных> ;

Здесь type должен быть одним из существующих в С типов переменных, а <список_переменных> может состоять из одной или нескольких переменных, разделенных запятыми. При объявлении переменных компилятор выделяет место в памяти компьютера, необходимое для размещения переменной данного типа. Примеры объявлений переменных:

int x, у, z;

float radius;

unsigned char ch;

long double integral;