×
Traktatov.net » Язык программирования C [Лекции и упражнения, 6-е изд.] » Читать онлайн
Страница 60 из 557 Настройки

Символ новой строки является примером  управляющей последовательности. Управляющая последовательность применяется для представления символов, которые трудно или просто невозможно ввести с клавиатуры. Примерами таких последовательностей могут служить символы \t для представления нажатия клавиши <Таb> и \b — для . В любом случае управляющая последовательность начинается с обратной косой черты (\). Мы вернемся к этой теме в главе 3.

Таким образом, все это объясняет, почему три оператора printf() вывели только две строки: первый оператор не содержал символа новой строки, но он был включен во второй и третий операторы.

Финальная строка с printf() привносит еще одну странность: что случилось с %d при выводе строки? Вспомните, что вывод этой строки выглядел так:

Моей любимой цифрой является 1, так как она первая.

Итак, при выводе этой строки вместо группы символов %d появилась цифра 1, и 1 — это значение переменной num. Комбинация %d представляет собой заполнитель, который показывает, где должно быть выведено значение переменной num. Эта строка подобна следующему оператору BASIC:

PRINT "Моей любимой цифрой является "; num; ", так как она первая."

Версия С фактически делает немного больше. Символ % уведомляет программу, что в этом месте будет выведено значение переменной, a d указывает на то, что перемен-


Введение в язык С 63

ная должна выводиться как десятичное целое число. Функция printf() предлагает на выбор несколько вариантов, включая шестнадцатеричные целые числа и числа с плавающей запятой. Действительно, буква f в имени printf() является напоминанием о том, что это форматирующая функция вывода. Каждый тип данных имеет собственный спецификатор; по мере того, как в данной книге будут вводиться все новые типы, будут также представлены и соответствующие спецификаторы.

Оператор возврата

return 0;

Оператор возврата является завершающим оператором программы, int в конструкции int main (void) означает, что функция main() возвращает целочисленное значение. Стандарт языка С требует, чтобы поведение функции main() было именно таким. Функции С, возвращающие значения, делают это с помощью оператора возврата, состоящего из ключевого слова return, за которым следует возвращаемое значение и точка с запятой. Если в функции main() опустить оператор возврата, по достижении закрывающей фигурной скобки } программа возвратит значение 0. Таким образом, оператор возврата в конце функции main() можно не указывать. Однако для других функций это не разрешено, поэтому ради единообразия рекомендуем использовать оператор возврата также и в main(). На этом этапе вы можете считать оператор возврата в функции main() чем-то необходимым для обеспечения логической согласованности, но в некоторых операционных системах, включая Linux и Unix, он имеет практическое применение. В главе 11 эта тема рассматривается более подробно.

Структура простой программы

Теперь, когда вы видели конкретный пример, вы готовы к ознакомлению с несколькими общими правилами для программ на С. Программа состоит из коллекции одной или нескольких функций, одна из которых обязательно должна иметь имя main(). Описание функции включает заголовок и тело функции. Заголовок функции содержит имя функции и сведения о типе информации, передаваемой в функцию и возвращаемой из нее. Имя функции можно опознать по круглым скобкам, которые могут быть пустыми. Тело функции заключено в фигурные скобки ({ }) и состоит из последовательности операторов, каждый из которых завершается точкой с занятой (рис. 2.4). В примере, приведенном в настоящей главе, использовался оператор объявления, определяющий имя и тип переменной. В нем также присутствовал оператор присваивания, устанавливающий значение переменной. Кроме того, в нем применялись три оператора вывода, в каждом из которых вызывалась функция printf(). Эти операторы вывода представляют собой примеры операторов вызова функции. И, наконец, функция main() завершается оператором возврата.