Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A.doc
Скачиваний:
36
Добавлен:
09.04.2015
Размер:
5.6 Mб
Скачать

42 Глава 2

Чуть позднее в этой главе вы узнаете больше об этом, включая и то, как опреде- лять свои собственные пространства имен.

Функция main ()

Функция main () в последнем примере состоит из заголовка main () и всего осталь- ного, начиная с открывающей фигурной скобки ({) и до соответствующей закрываю- щей фигурной скобки (}). Фигурные скобки заключают в себе исполняемые операто- ры функции, которые все вместе называются телом функции.

Как вы убедитесь, любая функция состоит из заголовка, определяющего (помимо всего прочего) ее имя, за которым следует тело функции, включающее множество операторов, заключенных в пару скобок. Тело функции может не содержать в себе во- обще никаких операторов — в таком случае функция ничего не делает.

Функция, которая ничего не делает, может показаться излишней, но когда вы пи- шете крупную программу, то можете изначально отобразить полную структуру про- граммы на функции, однако опустить код многих из них, оставляя их тела пустыми либо с минимальным содержимым. Поступая так, вы обеспечиваете возможность компиляции и выполнения всей программы, со всеми ее функциями в любой момент времени, с последовательным инкрементным добавлением кода этих функций в про- цессе разработки.

Операторы программы

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

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

Вот первый оператор в теле функции main ():

Этот оператор объявляет две переменные — apples и oranges. Переменная — это просто именованный фрагмент памяти компьютера, который вы можете использо- вать для сохранения данных, а оператор, представляющий имена одной или более переменных, называется объявлением переменной. Ключевое слово int в предыду- щем примере означает, что переменные с именами apples и oranges предназначе- ны для хранения целочисленных значений. Везде, где в программе объявляется имя новой переменной, всегда должен указываться вид данных, которые она может сохра- нять, и это называется типом переменной.

Следующий оператор объявляет другую целочисленную переменную — fruit:

Данные, переменные и вычисления 43

Хотя и можно объявлять несколько переменных в одном операторе, как это сдела- но в предыдущей строке с apples и oranges, обычно лучше объявлять каждую пере- менную в отдельном операторе и в отдельной строке, чтобы можно было индивиду- ально ее прокомментировать, описывая ее назначение.

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

Эта строка содержит два оператора, причем каждый завершается точкой с запя- той. Я поместил их здесь просто для демонстрации, что вы можете размещать более одного оператора в строке. Хотя это и не обязательно, но хорошим тоном в програм- мировании считается размещение только одного оператора в строке, поскольку это облегчает понимание кода. Хороший тон программирования предполагает такое ко- дирование, которое упрощает понимание кода и снижает вероятность ошибок.

Два оператора в предыдущей строке сохраняют значения 5 и 6 в переменных apples и oranges соответственно. Эти операторы называются операторами присва- ивания, потому что они присваивают новые значения переменным, а = — это опера- ция присваивания.

Далее идет такой оператор:

Это также оператор присваивания, но несколько отличающийся, поскольку справа от операции присваивания стоит арифметическое выражение. Этот оператор скла- дывает вместе значения, хранящиеся в переменных apples и oranges, и сохраняет результат в переменной fruit.

Следующие три оператора:

Это операторы вывода. Первый из них посылает символ новой строки, отмечен- ный словом endl, в командную строку на экране. В С++ источник ввода и место назна- чения вывода называется потоком (stream). Имя cout специфицирует "стандартный" выходной поток, а операция << указывает, что все, что находится справа от него, должно быть направлено в выходной поток cout. Операция « "задает" направление потока данных — от переменной или строки, находящейся справа, в направлении вы- ходного места назначения, расположенного слева. Таким образом, в первом операто- ре значение, представленное именем endl, которое означает символ новой строки, пересылается в поток, идентифицированный словом cout. В итоге данные, передан- ные в cout, выводятся в командной строке.

Значение имени cout и операции « определены в заголовочном файле стандарт- ной библиотеки <iostream>, который вы добавили в код программы с помощью ди- рективыв самом ее начале, cout — имя из стандартной библиотеки, а по- тому относится к пространству имен std. Как я уже говорил, без директивы using это имя не могло быть распознано компилятором, если только вы не указали бы его в полной квалифицированной форме —. Поскольку cout предназначено для того, чтобы представлять стандартный выходной поток, вы не должны использовать это имя для других целей, а потому не можете применять его, например, в качестве имени переменной. Очевидно, что использование одного и того же имени для раз- личных вещей может стать причиной путаницы.