Язык программирования C

Скачать в pdf «Язык программирования C»


В этой версии программы операции ввода концентрируются в одном месте, поскольку остается всего один вызов get char, а объем кода уменьшается. Программа записывается более компактно, и ее становится удобнее читать (при условии, что читатель знаком с данной устойчивой конструкцией). Такой стиль будет встречаться часто. Конечно, им можно чрезмерно увлечься и написать совершенно неудобочитаемый код, но мы постараемся избежать этой тенденции.


Скобки вокруг присваивания в условии необходимы. Приоритет операции ! = выше, чем операции =, т.е. в отсутствие скобок сравнение ! = выполнялось бы раньше, чем присваивание =. Таким образом, следующие два выражения будут эквивалентны:


с = getcharO != EOF с = (getcharO != EOF)


При этом переменная с получает значение 0 или 1 в зависимости от того, встретился или нет конец файла при вызове getchar. В то же время от этого выражения ожидалось совсем другое. Более подробно поговорим об этом в главе 2.


Упражнение 1.6. Проверьте, что выражение getchar ()    ! = EOF действительно равно


1 илиО.


Упражнение 1.7. Напишите программу для вывода значения константы EOF.

1.5.2. Подсчет символов


Следующая программа подсчитывает символы; она похожа на программу копирования потоков:


#include <stdio.h>


/* подсчет символов во входном потоке; 1-я версия */ main()

{


long nc; пс = 0 ;


while (getcharO != EOF)


++nc ;


printf(«%ldn», nc);

}


Здесь использована новая операция ++, представляющая собой инкремент, или увеличение на единицу. Вместо нее можно было бы записать пс = пс+1, но + +пс пишется короче и, как правило, работает быстрее. Существует и противоположная операция декремента ( — — ) для уменьшения на единицу. Операции ++ и — могут быть префиксными (++пс) или постфиксными (пс++). В выражениях эти два способа записи дают разные результаты, как будет показано в главе 2. Но в любом случае как ++пс, так и пс++ инкрементируют переменную пс. Пока что будем придерживаться префиксной формы записи.

Скачать в pdf «Язык программирования C»