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

Данные – это носители информации, которые обрабатываются компьютером. Данные можно условно разделить на переменные и константы.

2.1 Переменные и константы целого типа

Тип Размер Диапазон Спецификаторы
char 1 байт (8 бит) -128 ÷ 127 (–27 ÷ 27–1) %с %d %o %x
unsigned char 1 байт (8 бит) 0 ÷ +255 (0 ÷ 28–1) %с %d %o %x %u
short 2 байт (16 бит) -32768÷32767 (–215 ÷ 215–1) %d %o %x
unsigned short 2 байт (16 бит) 0 ÷ +65535 0 ÷ 216–1 %d %o %x %u
int 4 байт (32 бит) -2147483648 ÷ 2147483647 (–231 ÷ 231–1) %d %o %x
unsigned int 4 байт (32 бит) 0÷4294967295 (0 ÷ 232–1) %ld %lo %lx %lu
long 4 байт (32 бит) -2147483648 ÷ 2147483647 (–231 ÷ 231–1) %ld %lo %lx
unsigned long 4 байт (32 бит) 0÷4294967295 (0 ÷ 232–1) %ld %lo %lx %lu

Константы целого типа по умолчанию имеют тип int.Для задания типаlong дописывается символ L|l, для задания типа unsigned – символ U|u (234L, 456u, 23456Lu),для задания в 8-й СС вначале приписывается 0, в 16-й СС – 0х (020, 0х4а).

2.2 Переменные и константы вещественного типа

Тип Размер Диапазон Спецификаторы
float 4 байт (32 бит) ±3.4∙10–38 ÷±3.4∙10+38 %f %e
double 8 байт (64 бит) ±1.7∙10–308 ÷±1.7∙10+308 %lf %le

Константы вещественного типа по умолчанию имеют тип double.Для задания типаfloat дописывается символ F|f.

2.3 Именованные константы

Именованные константы можно задавать таким образом:

1) с помощью слова const, например:

const int с=100;

const double R=2.718281828;

2) с помощью директивы препроцессора #define, например:

#define R 5634

#define PI 3.1415

2.4 Классы памяти и инициализация переменных

Все переменные должны быть определены до первого их использования.

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

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

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

Инициализация – это присвоение численного значения при определении переменной.Инициализация бывает неявная (по умолчанию), и явная.

Внешние и статические переменные неявно (по умолчанию) инициализируются нулями, а автоматическиепроизвольными значениями.

Явная инициализация – это присвоение конкретного численного значения при определении переменной. Например:

int a=5; float f=45.6E-5;

2.5 Преобразование типов

Преобразования типов при вычислении выражений

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

double sd; float ft=2.0f; char c1=40; int k=2L;

sd=ft+(c1+6)/k;

В выражении (c1+6)операнд c1преобразуется к типуint. Затем выраже­ние (c1+6)/kпреобразуется к типу int, а все выражение преобразуется к типу float. Результат всего выражения будет иметь тип double.

Преобразование типов при выполнении операций присваивания

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

Пример: int x; char c; c=x+1;

Если х=40 (0x00000028), то с=41(0x29),

но если х=300 (0x0000012C), то с=45(0x2D), а не с=301 (0x0000012D), т.к. старшие биты не помещаются в тип char.

Следующие преобразования типов гарантируют сохранение точности:

сhar ® short® int ® long;

unsigned сhar® unsigned short®unsigned int ® unsigned long;

float ® double.








Дата добавления: 2016-04-11; просмотров: 670;


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

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.