- •1.1.Схема простой программы
- •1.2.Основы записи программ
- •1.2.1.Имена
- •1.2.2.Комментарии
- •1.2.3.Переменные и константы, объявления и присваивания
- •1.3.Основные конструкции: операторы, выражения, операции, операнды
- •2.1.Операторы объявления
- •2.2.“Линейные” операторы
- •2.3.Операторы управления программой
- •2.3.1.Условный оператор if (if-else)
- •2.3.2.Оператор выбора switch
- •2.3.3.Оператор цикла while
- •2.3.4.Оператор цикла do–while
- •2.3.5.Оператор цикла for
- •2.3.6.Операторы перехода break, continue и goto
- •3.1.Операция присваивания
- •3.2.Объединение действий с присваиванием
- •3.3.Операции увеличения и уменьшения на 1
- •3.4.Трактовка истинности
- •3.5.Операция ?
- •3.6.Операция «запятая»
- •3.7.Операция sizeof
- •4.1.Объявление, определение, параметры и вызов функции
- •4.2.Выход из функции
- •4.3.Организация памяти при выполнении программы
- •4.4.Правила видимости имен для функций
- •4.5.Одинаковое именование нескольких функций (перегрузка функций)
- •4.6.Параметры функций по умолчанию
- •4.7.Передача параметров функции по адресу
- •4.8.Библиотека стандартных функций
- •6.1.Целые числа
- •6.2.Вещественные числа
- •6.3.Логические значения
- •6.4.Символы
- •6.5.Преобразование типов
- •6.6.Вычисление значения выражения
- •7.1.Массивы
- •7.1.1.Одномерные массивы
- •7.1.2.Многомерные массивы
- •7.1.3.Строки
- •7.1.4.Массивы с неопределенным размером (безразмерные массивы)
- •7.2.Перечисления
3.3.Операции увеличения и уменьшения на 1
Очень часто в программе приходится увеличивать или уменьшать значение переменной на единицу. Чтобы сделать эти действия наиболее эффективными и удобными для использования, в C++ имеются специальные знаки операций: ++ (увеличить на единицу) и -- (уменьшить на единицу):
i++; // или ++i;
j--; // или --j;
Эти операции часто называют операциями, соответственно, инкрементирования и декрементирования. Имеются две формы этих операций: префиксная (знаки операции располагаются слева от операнда) и постфиксная (знаки операции располагаются справа от него).
Различие в действии двух форм операций ++ и -- сказывается, если эти операции используются в более сложном выражении. Тогда префиксная операция означает изменение значения операнда до его использования в выражении, а постфиксная – после.
3.4.Трактовка истинности
В C++ применяется расширенное толкование истинности. Оно заключается в том, что в условиях можно использовать не только логические, но и числовые выражения. При определении истинности числовых выражений (то есть, при преобразовании числовых значений в логические) ноль преобразуется в значение false, любое ненулевое числовое значение – в значение true.
Логические выражения, в свою очередь, могут использоваться в числовых выражениях. В таких случаях значение false преобразуется в числовое значение 0, а значение true – в числовое значение 1.
3.5.Операция ?
C++ имеет очень мощную тернарную операцию ?, которую можно использовать вместо конструкции if-else все с той же целью – сокращения записи программ. Операция ? имеет следующий вид:
операнд_1 ? операнд_2 : операнд_3
где операнд_1, операнд_2 и операнд_3 – это выражения.
Результатом выполнения операции ? является значение второго или третьего операнда в зависимости от истинности первого. Если логическим значением первого операнда является true, результатом операции является значение второго операнда, если false – третьего. Пример:
y = x >= 9 ? 100 : 200;
3.6.Операция «запятая»
Знак “запятая” часто используется для разделения элементов каких-либо последовательностей (например, при пречислении объявляемых переменных или параметров функции).
Кроме того, в языке определена операция “запятая”, которая связывает (группирует) два или более действий (выражений) и обеспечивает их последовательное выполнение (вычисление). Приоритет операции "запятая" ниже, чем у всех остальных операций C++.
Если операция "запятая" связывает два выражения, первым вычисляется значение ее левого операнда. Значением же операции "запятая" является значение выражения, находящегося справа от нее. Операций "запятая" в выражении может быть несколько, в этом случае они выполняются слева направо, а значением всего выражения будет значение самого правого операнда.
3.7.Операция sizeof
Операция sizeof позволяет определить, сколько памяти занимает то или иное значение. Например,
sizeof (int)
определяет число байтов, отводимое под переменные типа int, а
sizeof b
– число байтов, занимаемое переменной b.
Операндом унарной операции sizeof является имя типа или выражение. Операнд заключается в скобки (если операнд – выражение, скобки не обязательны). Результат операции – целое число, равное количеству байтов, необходимых для хранения в памяти заданной величины.
4.Язык C++: функции
Подпрограммы в C/C++ называются функциями. Функции могут возвращать результат своего выполнения. Такие функции в языке C++ имеют практически тот же смысл, что и функции в математике. Функция вызывается с определенными аргументами (фактическими параметрами), выполняет необходимые действия и возвращает результат в точку вызова. Результаты выполнения таких функций могут являться составными частями выражений.
Функции могут не иметь параметров, они выполняют одни и те же действия при всех вызовах, однако возвращаемый ими результат может быть разным, например, если он зависит от вводимых или получаемых извне значений.
Программа на языке C++ состоит, по крайней мере, из одной функции – функции main. Программа может содержать и другие функции. Выполнение программы всегда начинается с функции main, других особенностей у функции main нет.
В C++ нет вложенных функций, то есть невозможно определить функцию внутри другой функции.
Каждая функция в C++ – это обособленный фрагмент программы, блок. Доступ к операторам функции нельзя получить с помощью какого-либо оператора перехода (например, невозможно, используя goto, перейти в середину другой функции). Единственный возможный способ выполнения операторов функции – ее вызов.