long
или long int: может содержать целое значение, не меньшее максимальной величины, допускаемой типом int, или даже большее;short
или short int: максимальное целое число типа short не больше, чем максимальное целое число типа int, а может быть, и меньше. Обычно числа типа long бывают больше чисел типа short, а тип int реализуется как один из двух указанных типов. Например, компилятор Lattice С на IBM PC под данные типов short и int отводит 16 бит, а под данные типа long - 32 бита. Все зависит от конкретной системы.Целые числа без знака
Данные этих типов принимают только положительные значения или нуль. Это расширяет диапазон возможных положительных значений. При указании типа используйте ключевое слово unsigned
: unsigned int, unsigned long, unsigned short. Просто unsigned соответствует написанию unsigned int.Символы
Эти знаки соответствуют типографским символам, таким, как А, &, + и т. п. Обычно под каждый символ отводится 1 байт памяти.
Char
: ключевое слово, используемое для указания данных этого типа.Данные этих типов могут принимать положительные и отрицательные значения.
float:
основной тип данных с плавающей точкой в системе;1. Выбрать требуемый тип данных.
2. Выбрать имя для переменной.
3. Для оператора описания использовать нижеследующий формат:
Вот несколько примеров:
int erest;
unsigned short cash;
4. Вы можете описать в одном операторе несколько переменных одного типа, разделяя их имена запятыми:
char ch
, unit, ans;5. В операторе описания вы имеете возможность инициализировать переменную:
float mass = 6.0E24;
Другие типы
Этот раздел завершает рассмотрение основных типов данных. Некоторым читателям их число может показаться слишком большим. Остальные могут полагать, что описанных типов недостаточно; например, им захочется иметь булев тип или строковый тип данных. В языке Си они отсутствуют, но, несмотря на это, он вполне подходит для написания программ, связанных с обработкой логических данных или строк. Самые простые возможности работы со строками мы рассмотрим в следующей главе.
В языке Си имеются и другие типы данных, построенные с использованием основных типов. Они включают в себя массивы, указатели, структуры и объединения. Хотя эти типы являются пред метом рассмотрения последующих глав, мы, не подозревая об этом, уже применили указатели в примерах, приведенных в данной главе. [Указатели используются функцией scanf( );
признаком этого в данном случае служит префикс &.]
Приведем таблицу размеров данных для некоторых распространенных вычислительных систем.
Размер слова | DEC PDP-11 16 бит | DEC VAX 32 бита | Interdata 8/3 32 бита | IBM PC (Lattice C) 16 бит | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
char | 8 | 8 | 8 | 8 | ||||||||||||||||||||
int | 16 | 32 | 32 | 16 | ||||||||||||||||||||
short | 16 | 16 | 16 | 16 | ||||||||||||||||||||
long | 32 | 32 | 32 | 32 | ||||||||||||||||||||
float | 32 | 32 | 32 | 32 | ||||||||||||||||||||
double | 64 | 64 | 64 | 64 | ||||||||||||||||||||
Диапазон порядка | ±38 | ±38 | ±76 | -307 + 308 (double) |
Как обстоит дело на вашей машине? Попробуйте выполнить нижеследующую программу:
В языке Си имеется встроенная операция sizeof, которая позволяет определить размер объектов в байтах.
Мы определили размеры данных только четырех типов, но вы легко можете модифицировать эту программу и найти размер объекта любого другого интересующего вас типа.
ИСПОЛЬЗОВАНИЕ ТИПОВ ДАННЫХ
Во время разработки программы вам необходимо составить список требуемых переменных и указать при этом, какого они должны быть типа. Скорее всего вы будете использовать тип int
или, возможно, float для определения чисел и тип char для символов. Описывайте эти данные в самом начале тела функции, в которой они используются. Имена переменных выбирайте таким образом, чтобы они указывали на их смысл. При инициализации переменной следите за тем, чтобы тип константы соответствовал типу переменной.