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