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


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

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

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

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

Данные целого и вещественного типов находятся в определенных числовых диапазонах так как занимают разный объем оперативной памяти:

Таблица 1

Тип данных Объем памяти (байт) Диапазон значений
сhar -128 …127
int -32768…32767
short 2(1) -32768…32767(-128…127)
long -2147483648…2147483647
unsigned int 0…65535
unsigned long 0…4294967295
float 3,14*10-38…3,14*1038
double 1,7 *10-308 1,7 *10308

 

4.3. Декларация (объявление) объектов

Все объекты, с которыми работает программа в Си необходимо декларировать, т.е. объявить компилятору об их присутствии в программе. При этом возможны две формы декларации:

- описание, не приводящее к выделению памяти;

- определение, при котором под объект будет выделен объем оперативной памяти, в соответствии с его типом; в этом случае объект можно сразу инициализировать, т.е. задать его начальное значение.

Кроме констант, которые можно задавать в исходном тексте, все объекты программы должны быть явно декларированы по следующему формату:

<атрибуты> <список ID объектов>;

элементы списка разделяются запятыми, а атрибуты - разделителями. Например: int i,j,k; float a,b;

Объекты программы в общем случае имеют следующие атрибуты:

<класс памяти> - характеристика способа размещения объектов в памяти (статическая, динамическая), определяет область види­мости и время жизни переменной (по умолчанию - auto), данные атрибуты будут рассмотрены позже;

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

Класс памяти и тип – атрибуты необязательные и могут отсутст­во­вать, тогда их значения установятся по умолчанию.

Примеры декларации простых объектов:

int i,j,k;

char r;

double gfd;

Рассмотрим основные базовые типы данных более подробно.

 

4.4. Данные целого типа (int)

Тип int - целое число, обычно соответствующее естественному размеру целых в используемой ЭВМ. Квалификаторы short и long, которые можно использовать с типом int, указывают на различные размеры целых, т.е. определяют размер памяти, выделяемый под переменные (табл.1).

Примеры: short int x;

long int x;

unsigned int x = 8; (декларация с одновременной инициализацией числом 8).

Атрибут int в таких ситуациях может быть опущен.

Атрибуты signed и unsigned показывают, как интерпретируется старший бит числа, как знак или как часть числа:

 

int Знак Значение числа  
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - номера битов

 

unsigned int   Значение числа
15 0

 

long Знак Значение числа
30 0

 

unsigned long   Значение числа
31 0

 

Если указан только атрибут int, это означает - short signed int.

4.5. Данные символьного типа (char)

Символьная переменная занимает в памяти 1 байт и представля­ется кодом от 0 до 255. Закрепление конкретных символов за кодами производится кодовыми таблицами.

Для персональных компьютеров наиболее распространена ASCII (American Standard Code for Information Interchenge) таблица кодов (Приложение 1). Данные типа char рассматри­ваются компиля­то­ром как "целые", поэтому возможно использование signed char (по умолчанию) - символы с кодами от -128 до +127 (т.е. только символы с кодами до 127) и unsigned char - символы с кодами от 0 до 255 (в том числе и русские).

Примеры:

char res, simv1, simv2;

char let = 's'; (декларация с одновременной инициализацией символом s).

 

4.6. Данные вещественного типа (float, double)

Данные вещественного типа в памяти занимают, соответственно, float - 4 байта; double - 8 байт; long double (повышенная точность) - 10 байт. Для размещения данных типа float обычно 8 бит выделено для представления порядка и знака и 24 бита под мантиссу.

Тип Точность (мантисса) Порядок
float 7 цифр после запятой ± 38
double ± 308
Long double ± 4932

 



Дата добавления: 2016-09-26; просмотров: 2324;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.