Основные типы данных в языке Си (C)

 

Имя Размер Представляемые значения Диапазон
(signed) char 1 байт символы
целые числа
от –128 до 127
(signed) short int 2 байта целые числа от -32768 до 32767
(signed) int зависит от реализации
(в последних компиляторах обычно 4 байта)
целые числа
(signed) long int 4 байта целые числа от -2147483648 до 2147483647
unsigned char 1 байт символы
целые числа
от 0 до 255
unsigned short int 2 байта целые числа 0 до 65535
unsigned int зависит от реализации
(в последних компиляторах обычно 4 байта)
целые числа
unsigned long int 4 байта целые числа от 0 до 4294967295
float 4 байта вещественные числа от 1.175494351e–38
до 3.402823466e+38
double 8 байт вещественные числа от 2.2250738585072014e–308
до 1.7976931348623158e+308
long double зависит от реализации вещественные числа

В языке C также существуют перечислимый тип – enum , который является подмножеством целого типа, и пустой тип – void, который имеет специальное назначение. Он используется для объявления функций, которые не возвращают никакого значения, а также для объявления указателей на значение типа void. Такие указатели могут быть преобразованы к указателям на любой другой тип.

В языке С можно объявлять структуры и так называемые объединения.

В языке C нет специальных типов для массивов, строк (которые представляются массивом символов), и для логических значений. Логические значения представляются данными целого типа, при этом значение 0 соответствует логическому значению ложь, а все остальные целые значения соответствуют логическому значению истина. Этим свойством языка C можно пользоваться, например, следующим образом: значение некоторой переменной, равное 0, говорит об отсутствии некоторого признака у объекта, а остальные значения говорят о его наличии, и при этом несут какую-либо дополнительную информацию.

В языке С контроль типов не так силён, как в Паскале. Вы можете выполнять любые разумные присвоения между переменными разных типов. Кроме того, при выполнении большинства операций производятся преобразования по умолчанию для приведения операндов к одному и тому же типу:

все операнды типа float преобразуются к типу double ;
если один операнд имеет тип double , то второй операнд преобразуется к типу double ;
если один операнд имеет тип unsigned long , то второй операнд преобразуются к типу unsigned long ;
если один операнд имеет тип long int , то второй операнд преобразуются к типу long int ;
если один операнд имеет тип unsigned int , то второй операнд преобразуются к типу unsigned int ;
все операнды типов char и short преобразуются к типу int ;
все операнды типов unsigned char и unsigned short преобразуются к типу unsigned int ;
иначе оба операнда имеют тип int .

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

Похожие материалы

Айтистанция
Добавить комментарий

Adblock
detector