Язык программирования Си (Ритчи, Керниган) - страница 10

>printf("Hello, world

>");

компилятор выдаст сообщение об ошибке.

Символ новой строки никогда не вставляется автоматически, так что одну строку можно напечатать по шагам с помощью нескольких обращений к printf. Нашу первую программу можно написать и так:

>#include ‹stdio.h›


>main()

>{

> printf("Hello, ");

> printf("world");

> printf('\n');

>}

В результате ее выполнения будет напечатана та же строка, что и раньше.

Заметим, что \n обозначает только один символ. Такие особые комбинации символов, начинающиеся с обратной наклонной черты, как \n, и называемые эскейп-последовательностями, широко применяются для обозначения трудно представимых или невидимых символов. Среди прочих в Си имеются символы \t, \b, \", \\, обозначающие соответственно табуляцию, возврат на один символ назад ("забой" последнего символа), двойную кавычку, саму наклонную черту. Полный список таких символов представлен в параграфе 2.3.

Упражнение 1.1. Выполните программу, печатающую "Hello, world", в вашей системе. Поэкспериментируйте, удаляя некоторые части программы, и посмотрите, какие сообщения об ошибках вы получите.

Упражнение 1.2. Выясните, что произойдет, если в строковую константу аргумента printf вставить \c, где c - символ, не входящий в представленный выше список.

1.2 Переменные и арифметические выражения

Приведенная ниже программа выполняет вычисления по формуле °С = (5/9)(°F-32) и печатает таблицу соответствия температур по Фаренгейту температурам по Цельсию:

>0   –17

>20  –6

>40  4

>60  15

>80  26

>100 37

>120 48

>140 60

>160 71

>180 82

>200 93

>220 104

>240 115

>260 126

>280 137

>300 148

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

>#include ‹stdio.h›

>/* печать таблицы температур по Фаренгейту

>и Цельсию для fahr = 0, 20,…, 300 */

>main()

>{

> int fahr, celsius;

> int lower, upper, step;

> lower = 0; /* нижняя граница таблицы температур */

> upper = 300; /* верхняя граница */

> step = 20; /* шаг */

> fahr = lower;

> while (fahr ‹= upper) {

>  celsius = 5 * (fahr-32) / 9;

>  printf("%d\t%d\n", fahr, celsius);

>  fahr = fahr + step;

> }

>}

Две строки:

>/* печать таблицы температур по Фаренгейту

>и Цельсию для fahr = 0, 20,… 300 */

являются комментарием, который в данном случае кратко объясняет, что делает программа. Все символы, помещенные между /* и */, игнорируются компилятором, и этим можно свободно пользоваться, чтобы сделать программу более понятной. Комментарий можно располагать в любом месте, где могут стоять символы пробела, табуляции или символ новой строки.