Управлять областью видимости переменных можно также с помощью операции расширения области видимости :: .
#include < iostream.h >
char c;
void func ()
{
char c; cin >> c;
cout << c; // c – локальная переменная функции
cout << ::c; // c – глобальная переменная
}
void main ()
{
cin >> c; // c – глобальная переменная
func(); cout << c;
}
В соответствии с количеством операндов в С++ различаются унарные, бинарные и тернарные операции. Приоритеты и порядок выполнения операций приведены в таблице 1.4.
Таблица 1.4 Приоритеты и порядок выполнения операций
Прио-ритет |
Знаки операций |
Названия операций |
Порядок выполнения |
1 |
:: |
Расширение области видимости |
слева |
2 |
. -> [] () ++ -- typeid dynamic_cast static_cast reinterpret_cast const_cast |
выбор элемента по имени выбор элемента по указателю выбор элемента по индексу вызов функции или конструирование значения постфиксный инкремент постфиксный декремент идентификация типа преобразование с проверкой при выполнениии преобразование с проверкой при компиляции преобразование без проверки константное преобразование |
слева |
3 |
sizeof ++ -- ~ ! + - & * new delete (имя_типа) |
размер операнда в байтах префиксный инкремент префиксный декремент инверсия (поразрядное НЕ) логическое НЕ унарный плюс унарный минус адрес разыменование выделение памяти по запросу освобождение памяти по запросу преобразование типа |
справа |
4 |
.* ->* |
выбор элемента по имент через указатель выбор элемента по указателю через указатель |
слева |
5 |
* / % |
умножение деление деление по модулю |
слева |
6 |
+ - |
сложение вычитание |
слева |
7 |
<< >> |
сдвиг влево сдвиг вправо |
слева |
8 |
< > <= >= |
меньше больше меньше или равно больше или равно |
слева |
9 |
== != |
равно не равно |
слева |
10 |
& |
поразрядное И |
слева |
11 |
^ |
поразрядное исключающее ИЛИ |
слева |
12 |
| |
поразрядное ИЛИ |
слева |
13 |
&& |
логическое И |
слева |
14 |
|| |
логическое ИЛИ |
слева |
15 |
?: |
условная |
справа |
16 |
= *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |= |
присваивания (простое и составные) |
справа |
17 |
throw |
генерация исключения |
справа |
18 |
, |
последовательность выражений |
слева |
В случае применения префиксной операции автоинкремента или автодекремента (++ x или - -x) значение операнда x изменяется перед его использованием. В случае применения постфиксной операции автоинкремента или автодекремента (x ++или x - -) значение операнда x изменяется после его использования.
int i=2, a;
а=++i; //i=3, a=3
a=i++; //а=2, i=3
() и [] рассматриваются как бинарные операции
имя_функции(список_арг);
имя_массива[индекс];
операнды
sizeof (имя_типа) или sizeof выражение – операция вычисление размера типа или значения выражения в байтах.
Операция приведения (преобразования) типа:
1) каноническая: (имя_типа) операнд;
2) функциональная: имя_типа (операнд);
Операции выбора компонентов структурированного объекта:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.