Инструкции тела функции main
}
Слово void является зарезервированным словом и именем никакого типа (пустого типа). В заголовке этой функцииимя типа void используется в списке ее формальных параметров чтобы указать, что функция не имеет параметров (список ее формальных параметров пустой) – она не получает информации от других объектов – функций, так как ее никто не вызывает, она первая исполняемая функция в программе. Тип возвращаемого значения этой функции указан как тип void, то есть эта функция не передает информацию никакому другому объекту-функции через возвращаемое значение.
Операторы языка С++. Инструкция выражения.
Тело функции состоит из инструкций (statement). Часть инструкций определяет объекты, которые должны хранить обрабатываемые этой функцией данные, часть инструкций задает последовательность действия над этими объектами.
Действия над объектами (операции) в С++ осуществляются операторами (operator), которые задаются одним или более символов. ( Обратите внимание, что в других языках и часто и в учебниках C++ инструкции (statement) называются операторами, а операторы - операциями).
Все операторы представляют собой отдельные лексемы, например + - / sizeof ::.
По количеству операндов, участвующих в действии, определяемой оператором, операторы делятся на унарные (действие осуществляется над одним объектом) и бинарные (действие осуществляется над двумя объектами).
Понятие выражения.
Выражение (выр expression) – это последовательность имен объектов, соединенных операторами. Выражение задает выполнение некоторых действий над объектами в виде математической формулы и/или отношения.
Например, если определены следующие объекты:
int nA1, nA2 ;
float fltB ;
то выражения могут выглядеть так:
nA1 + fltB – 2. / nA2
или так
fltB = 2.8
или так
nA1 = (nA2 + fltB) / nA2 - fltB * nA1
Порядок выполнения операторов в выражении.
Последовательность действий в выражениях определяется приоритетом операторов. Для изменения порядка выполнения операторов используются скобки.
В таблице приведены операторы языка, сгруппированные в порядке их приоритетов.
СВОДКА ОПЕРАТОРОВ (операций ) С++ В каждой очерченной части находятся операторы с одинаковым приоритетом
Приоритет | Оператор | Назначение оператора | Синтаксис оператора |
:: | разрешение области видимости | имя_класса :: член | |
:: | глобальное | :: имя | |
-> | выбор члена | указатель -> член | |
[ ] | индексация | указатель [выр] | |
( ) | вызов функции | выр ( список_выр ) | |
sizeof | определение размера типа | sizeof ( тип ) | |
sizeof | определение размера объекта | sizeofвыр | |
++ | приращение после | lvalue ++ | |
++ | приращение до | ++ lvalue | |
- - | уменьшение после | lvalue - - | |
- - | уменьшение до | - - lvalue | |
~ | дополнение | ~ выр | |
! | не | !выр | |
- | ударный минус | - выр | |
+ | ударный плюс | + выр | |
& | адрес объекта | & lvalue | |
* | разыменование | * выр | |
new | создание (размещение) | new mun | |
delete | уничтожение (освобождение) | delete указатель | |
delete [ ] | уничтожение массива | delete [] указатель | |
( ) | преобразование типа | ( тип ) выр | |
* | умножение | выр * выр | |
/ | деление | выр / выр | |
% | взятие по модулю (остаток) | выр %выр | |
+ | сложение (плюс) | выр + выр | |
- | вычитание (минус) | выр - выр | |
<< | сдвиг влево | lvalue << выр | |
>> | сдвиг вправо | lvalue >> выр | |
< | меньше | выр < выр | |
<= | меньше или равно | выр <= выр | |
> | больше | выр > выр | |
>= | больше или равно | выр >= выр | |
= = | равно | выр == выр | |
!= | не равно | выр != выр | |
& | побитовое И | выр & выр | |
^ | побитовое исключающее ИЛИ | выр ^ выр | |
| | побитовое включающее ИЛИ | выр |выр | |
&& | логическое И | выр && выр | |
|| | логическое ИЛИ | выр || выр | |
?: | арифметический if | выр ?выр : выр | |
= | простое присваивание | lvalue = выр | |
* = | умножить и присвоить | lvalue * = выр | |
/ = | разделить и присвоить | lvalue / = выр | |
% = | взять по модулю и присвоить | lvalue % = выр | |
+ = | сложить и присвоить | lvalue + = выр | |
- = | вычесть и присвоить | lvalue - = выр | |
, | запятая (последование) | выр , выр |
I ++равнозначно I = I +1
++ IравнозначноI = I +1
J = I ++равнозначно двум действиям в таком порядке J = I I = I +1
J = ++ Iравнозначнодвум действиям в таком порядке I = I +1 J = I
Термин lvalue (left value) – леводопустимое выражение (происходит от объяснения оператора присваивания LV=A , в котором левый операнд LV может быть только адресным объектом, в который копируется информация, т.е. изменяемым выражением). |
Неявное преобразование типов в выражении.
Результат выполнения выражения это всегда одно значение, которое характеризуется своим типом.
Если в выражение входят операнды одного типа, то значение выражения будет того же типа. В выражении операнды могут быть различных типов. Тогда перед вычислением выражения будут выполняться преобразования типов по умолчанию таким образом, чтобы осуществить преобразования более коротких типов в более длинные для сохранения значения и точности (это не относится! к оператору = )
Например, если определены следующие объекты:
int nA1 = 2, nA2 = 5.5; // значение объекта nA2 равно 5, так как произошло неявное
// преобразование константы 5.5 типа float к типу int при выполнении оператора =
float fltB = 3;
Выражение nA1 + 2 - nA2 будет иметь значение -1, тип которого int (все операнды в выражении типа int).
Выражение fltB = nA1+ 2 - nA2 будет иметь то же значение -1., но тип его будет float, так как при выполнении оператора = произошло неявное преобразование внутреннего представления информации в объекте fltB .
Выражение nA1 + 2.2 - nA2 будет иметь значение 0.8, тип которого float (один из операндов константа 2.2 имеет тип float, следовательно все операнды в выражении преобразованы к более длинному типу float).
Выражение fltА2 = nA1+ 2.2 - nA2 будет иметь то же значение 0, тип его будет int, так как при выполнении оператора = произошло неявное преобразование значения 0.8, вычисленного в выражении nA1 + 2.2 - nA2 и имеющего значение float к типу int .
Разберитесь каковы значения и тип у следующих выражений:
nA1 + fltB – 2. / nA2 // значение 4.6 , тип float, т.к. значение 2. / nA2 равно 0.4
nA1 + fltB – 2 / nA2 // значение 5., тип float, т.к. значение 2 / nA2 равно 0
или так
fltB = 2.8 // значение 2.8 , тип float
или так
// 1.6 - 6
nA1 = (nA2 + fltB) / nA2 - fltB * nA1 // при выполнении последнего оператора =
// nA1 = - 4.4 получили значение равное -4, тип int
Инструкция выражения.
Инструкция- выражение – это выражение, после которого стоит точка с запятой.
Например:
nB = 2.8 ;
nA1 = (nA2 + fB) / nA2 - fB * nA1 ;
Инструкция выражение делает то, что делают над объектами операторы, записанные в выражении.Это одна из самых мощных инструкций, так как количество сочетаний различных действий, записанных в выражениях бесконечно.
Пример первой программы, состоящей из одной функции main.
Далее следует пример программы, состоящей из одной функции. А раз функция одна, то такой функцией может быть только функция main.
Обратите внимание на цвет текста. Зарезервированные слова пишутся в редакторе синим цветом, комментарии зеленным, все остальные слова (слова, начертания которых определяет программист ) и символы–операторы черные.