
- •6 Глава 1
- •12 Глава 1
- •14 Глава 1
- •16 Глава 1
- •18 Глава 1
- •20 Глава 1
- •22 Глава 1
- •24 Глава 1
- •26 Глава 1
- •31 Глава 1
- •34 Глава 2
- •36 Глава 2
- •Puc. 2.4. Дополнительные опции консольного приложения Win32
- •38 Глава 2
- •40 Глава 2
- •42 Глава 2
- •44 Глава 2
- •48 Глава 2
- •50 Глава 2
- •52 Глава 2
- •54 Глава 2
- •56 Глава 2
- •58 Глава 2
- •60 Глава 2
- •62 Глава 2
- •64 Глава 2
- •66 Глава 2
- •68 Глава 2
- •70 Глава 2
- •74 Глава 2
- •76 Глава 2
- •79 Глава 2
- •82 Глава 2
- •84 Глава 2
- •86 Глава 2
- •88 Глава 2
- •92 Глава 2
- •94 Глава 2
- •96 Глава 2
- •98 Глава 2
- •103 Глава 2
- •105 Глава 2
- •107 Глава 2
- •110 Глава 2
- •115 Глава 3
- •119 Глава 3
- •121 Глава 3
- •123 Глава 3
- •125 Глава 3
- •129 Глава 3
- •131 Глава 3
- •133 Глава 3
- •139 Глава 3
- •141 Глава 3
- •143 Глава 3
- •145 Глава 3
- •148 Глава 3
- •150 Глава 3
- •155 Глава 3
- •165 Глава 4
- •168 Глава 4
- •170 Глава 4
- •173 Глава 4
- •175 Глава 4
- •178 Глава 4
- •184 Глава 4
- •186 Глава 4
- •188 Глава 4
- •190 Глава 4
- •192 Глава 4
- •194 Глава 4
- •198 Глава 4
- •201 Глава 5
- •203 Глава 5
- •205 Глава 5
- •207 Глава 5
- •213 Глава 5
- •217 Глава 5
- •219 Глава 5
- •221 Глава 5
- •223 Глава 5
- •225 Глава 5
- •227 Глава 5
- •232 Глава 5
- •234 Глава 5
- •236 Глава 5
42 Глава 2
Чуть позднее в этой главе вы узнаете больше об этом, включая и то, как опреде- лять свои собственные пространства имен.
Функция main ()
Функция main () в последнем примере состоит из заголовка main () и всего осталь- ного, начиная с открывающей фигурной скобки ({) и до соответствующей закрываю- щей фигурной скобки (}). Фигурные скобки заключают в себе исполняемые операто- ры функции, которые все вместе называются телом функции.
Как вы убедитесь, любая функция состоит из заголовка, определяющего (помимо всего прочего) ее имя, за которым следует тело функции, включающее множество операторов, заключенных в пару скобок. Тело функции может не содержать в себе во- обще никаких операторов — в таком случае функция ничего не делает.
Функция, которая ничего не делает, может показаться излишней, но когда вы пи- шете крупную программу, то можете изначально отобразить полную структуру про- граммы на функции, однако опустить код многих из них, оставляя их тела пустыми либо с минимальным содержимым. Поступая так, вы обеспечиваете возможность компиляции и выполнения всей программы, со всеми ее функциями в любой момент времени, с последовательным инкрементным добавлением кода этих функций в про- цессе разработки.
Операторы программы
Каждый из операторов программы, образующих тело функции main () , завер- шается точкой с запятой. Этот символ помечает конец оператора, а не конец строки. Следовательно, один оператор может распространяться на несколько строк, если это помогает понять код, либо несколько операторов могут находиться в одной строке. Оператор программы — базовый элемент, определяющий то, что делает программа. Он в некоторой степени похож на предложение в абзаце текста, где каждое из них выражает действие или идею, но при этом комбинируется с другими предложениями абзаца для определения более общей идеи. Оператор — самодостаточное определение действия, которое может выполнять компьютер, но которое может комбинироваться с другими операторами с целью определения более сложного действия или вычисления.
Действие функции всегда выражается набором операторов, каждый из которых завершается точкой с запятой. Взгляните на операторы в последнем примере, просто чтобы почувствовать, как они работают. Каждый из этих операторов позднее в этой главе будет описан более подробно.
Вот первый оператор в теле функции main ():
Этот оператор объявляет две переменные — apples и oranges. Переменная — это просто именованный фрагмент памяти компьютера, который вы можете использо- вать для сохранения данных, а оператор, представляющий имена одной или более переменных, называется объявлением переменной. Ключевое слово int в предыду- щем примере означает, что переменные с именами apples и oranges предназначе- ны для хранения целочисленных значений. Везде, где в программе объявляется имя новой переменной, всегда должен указываться вид данных, которые она может сохра- нять, и это называется типом переменной.
Следующий оператор объявляет другую целочисленную переменную — fruit:
Данные,
переменные и вычисления
Хотя и можно объявлять несколько переменных в одном операторе, как это сдела- но в предыдущей строке с apples и oranges, обычно лучше объявлять каждую пере- менную в отдельном операторе и в отдельной строке, чтобы можно было индивиду- ально ее прокомментировать, описывая ее назначение.
Следующая строка в примере выглядит так:
Эта строка содержит два оператора, причем каждый завершается точкой с запя- той. Я поместил их здесь просто для демонстрации, что вы можете размещать более одного оператора в строке. Хотя это и не обязательно, но хорошим тоном в програм- мировании считается размещение только одного оператора в строке, поскольку это облегчает понимание кода. Хороший тон программирования предполагает такое ко- дирование, которое упрощает понимание кода и снижает вероятность ошибок.
Два оператора в предыдущей строке сохраняют значения 5 и 6 в переменных apples и oranges соответственно. Эти операторы называются операторами присва- ивания, потому что они присваивают новые значения переменным, а = — это опера- ция присваивания.
Далее идет такой оператор:
Это также оператор присваивания, но несколько отличающийся, поскольку справа от операции присваивания стоит арифметическое выражение. Этот оператор скла- дывает вместе значения, хранящиеся в переменных apples и oranges, и сохраняет результат в переменной fruit.
Следующие три оператора:
Это операторы вывода. Первый из них посылает символ новой строки, отмечен- ный словом endl, в командную строку на экране. В С++ источник ввода и место назна- чения вывода называется потоком (stream). Имя cout специфицирует "стандартный" выходной поток, а операция << указывает, что все, что находится справа от него, должно быть направлено в выходной поток cout. Операция « "задает" направление потока данных — от переменной или строки, находящейся справа, в направлении вы- ходного места назначения, расположенного слева. Таким образом, в первом операто- ре значение, представленное именем endl, которое означает символ новой строки, пересылается в поток, идентифицированный словом cout. В итоге данные, передан- ные в cout, выводятся в командной строке.
Значение
имени cout
и операции « определены в заголовочном
файле стандарт-
ной библиотеки
<iostream>,
который вы добавили в код программы с
помощью ди-
рективыв
самом ее начале, cout
— имя из стандартной библиотеки, а
по-
тому относится к пространству имен
std.
Как я уже говорил, без директивы using
это
имя не могло быть распознано компилятором,
если только вы не указали бы его в
полной
квалифицированной форме —
.
Поскольку cout
предназначено для
того, чтобы
представлять стандартный выходной
поток, вы не должны использовать
это
имя для других целей, а потому не можете
применять его, например, в качестве
имени
переменной. Очевидно, что использование
одного и того же имени для раз-
личных
вещей может стать причиной путаницы.