Язык Си | страница 36



     В языке Си имеются и другие типы данных, построенные с использованием основных типов. Они включают в себя массивы, указатели, структуры и объединения. Хотя эти типы являются пред метом рассмотрения последующих глав, мы, не подозревая об этом, уже применили указатели в примерах, приведенных в данной главе. [Указатели используются функцией scanf( ); признаком этого в данном случае служит префикс &.]

 


     Приведем таблицу размеров данных для некоторых распространенных вычислительных систем.

Таблица 3.1.Представление типов данных в некоторых известных вычислительных системах

Размер словаDEC PDP-11 16 битDEC VAX 32 битаInterdata 8/3  32 битаIBM PC (Lattice C)  16 бит
char8888
int16323216
short16161616
long32323232
float32323232
double64646464
Диапазон порядка±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, которая позволяет определить размер объектов в байтах.

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

ИСПОЛЬЗОВАНИЕ ТИПОВ ДАННЫХ

     Во время разработки программы вам необходимо составить список требуемых переменных и указать при этом, какого они должны быть типа. Скорее всего вы будете использовать тип int или, возможно, float для определения чисел и тип char для символов. Описывайте эти данные в самом начале тела функции, в которой они используются. Имена переменных выбирайте таким образом, чтобы они указывали на их смысл. При инициализации переменной следите за тем, чтобы тип константы соответствовал типу переменной.

int apples = 3; /* ПРАВИЛЬНО */

int oranges = 3.0; /* НЕПРАВИЛЬНО */

     Язык Си "рассматривает" такие несоответствия менее жестко, чем, скажем, Паскаль, но в любом случае лучше учиться избегать дурных привычек.

ЧТО ВЫ ДОЛЖНЫ БЫЛИ УЗНАТЬ В ЭТОЙ ГЛАВЕ

     В данной главе мы рассмотрели довольно большой материал. Суммируя его, мы обратим основное внимание на практическую сторону тех вопросов, которые здесь обсудили. Так же как и в предыдущей главе, мы дадим краткие примеры. Ниже приводится сводка тех фактов, которые вы должны были узнать из этой главы.