Лексические основы языка C ++. Алфавит и лексемы языка C++. Операторы C++. Массивы и указатели, страница 4

Управлять областью видимости переменных можно также с помощью операции расширения области видимости :: .

#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.7Операции, выражения и операторы

В соответствии с количеством операндов в С++ различаются унарные, бинарные и тернарные операции. Приоритеты и порядок выполнения операций приведены в таблице 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) функциональная: имя_типа (операнд);

Операции выбора компонентов структурированного объекта: