Книга: Язык Си - руководство для начинающих
Другие типы
Другие типы
Этот раздел завершает рассмотрение основных типов данных. Некоторым читателям их число может показаться слишком большим. Остальные могут полагать, что описанных типов недостаточно; например, им захочется иметь булев тип или строковый тип данных. В языке Си они отсутствуют, но, несмотря на это, он вполне подходит для написания программ, связанных с обработкой логических данных или строк. Самые простые возможности работы со строками мы рассмотрим в следующей главе.
В языке Си имеются и другие типы данных, построенные с использованием основных типов. Они включают в себя массивы, указатели, структуры и объединения. Хотя эти типы являются пред метом рассмотрения последующих глав, мы, не подозревая об этом, уже применили указатели в примерах, приведенных в данной главе. [Указатели используются функцией scanf( ); признаком этого в данном случае служит префикс &.]
Приведем таблицу размеров данных для некоторых распространенных вычислительных систем.
Таблица 3.1.Представление типов данных в некоторых известных вычислительных системах
Размер слова | 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) |
Как обстоит дело на вашей машине? Попробуйте выполнить нижеследующую программу:
main( )
{
printf(" Данные типа int занимают %d байта. n", sizeof (int));
printf(" Данные типа char занимают %d байт.n", sizeof (char));
printf(" Данные типа long занимают %d байта.n", sizeof (long));
printf(" Данные типа double занимают %d байт.n", sizeof (double));
}
В языке Си имеется встроенная операция sizeof, которая позволяет определить размер объектов в байтах.
Мы определили размеры данных только четырех типов, но вы легко можете модифицировать эту программу и найти размер объекта любого другого интересующего вас типа.