Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы / KonspLkStrukturnoe_programmirovanie_na_C__311.doc
Скачиваний:
43
Добавлен:
10.04.2015
Размер:
559.1 Кб
Скачать

Именованные константы

При объявлении именованных констант перед указанием типа записывается спецификатор const и обязательно инициализируется значение, которое в процессе работы программы не может изменяться.

Примеры:

const long int a=4, d=562;

const double r=.24, pi=3.1415;

можно и так:

const long int a(4), d(562);

Блоки. Область видимости переменных.

Аналогично Паскалю в C++ вводится понятие блока. Под блоком понимается часть программного кода, заключенная в фигурные скобки {…}.

Объявления имен (переменных, констант и т.д.) действуют в пределах блока, в котором они помещены. Переменные, объявленные в блоке, называются локальными переменными. Их могут использовать только инструкции, находящиеся в данном блоке. Блоки могут быть вложены друг в друга, при этом внутренний блок должен полностью размещаться внутри внешнего. Объявления имен, сделанные вне блока, действуют от места объявления и до конца файла – глобальные переменные. Если одно и то же имя объявлено внутри и вне блока (коллизия переменных) оно считается локальным, т.е. объявление вне блока игнорируется.

При объявлении переменной (или именованной константы) кроме типа может быть указан параметр, определяющий класс памяти. Класс памяти определяет время жизни и область видимости переменной. Если класс памяти не указан явно, то он определяется компилятором автоматически в соответствии с контекстом. Время жизни переменной может быть постоянным (в течение времени выполнения программы) и временным (в течение времени выполнения блока).

Класс памяти задается при определении переменных следующими 4 спецификаторами:

auto – автоматическая переменная. Память выделяется в стеке и освобождается каждый раз при выходе из блока, в котором описана переменная. Для локальных переменных этот спецификатор используется по умолчанию.

register – аналогично auto, но память выделяется в регистрах процессора. Если такой возможности нет, используется режим auto, т.е. стековая память.

static – статическая переменная. Время жизни – постоянное, т.е. все время работы программы. В зависимости от места, где они объявлены, статические переменные могут быть и локальными, и глобальными.

extern – внешняя переменная, которая определена в другом месте программы. Используется для переменных, которые могут быть доступны в любом модуле программы, в котором они объявлены.

Выражения

Выражение задает правило вычисления некоторого значения. В зависимости от числа операндов входящие в выражение операции делятся на унарные (один операнд), бинарные (два операнда) и тернарные (три операнда). Операндами могут быть константы, переменные, функции и выражения. При записи в выражении функции список ее аргументов заключается в круглые скобки, например, sin(a) или NOD(m,n).

Примером унарной операции является операция изменения знака -5.24, бинарной – операция сложения 4+7.

Основные операции, используемые при записи выражений

Арифметические унарные

+

унарный плюс

-

унарный минус (арифметическое отрицание)

++

увеличение на 1 (инкремент)

--

уменьшение на 1 (декремент)

Арифметические бинарные

*

умножение

/

деление

%

деление по модулю (остаток от деления)

+

сложение

-

вычитание

Логические унарные

!

отрицание

Логические бинарные

&&

логическое И (конъюнкция)

||

логическое ИЛИ (дизъюнкция)

Операции отношения

<

меньше

<=

не больше

==

равно

!=

не равно

>=

не меньше

>

больше

Прочие

sizeof(…)

размер типа

(…) ? … : …

условное выражение

Унарные операции инкремента и декремента могут использоваться в двух формах: префиксной и постфиксной.

Префиксная форма

++х - инкремент, увеличение значения операнда на 1 до его использования;

--х - декремент, уменьшение значения операнда на 1 до его использования;

сначала изменяется переменная (x), а затем с учетом этого изменения вычисляется выражение, в которое входит инкремент (декремент).

Постфиксная форма

x++ - инкремент, увеличение значения операнда на 1 после его использования;

x-- - декремент, уменьшение значения операнда на 1 после его использования;

сначала вычисляется выражение, в которое входит инкремент (декремент), при этом используется старое значение переменной (x), а затем изменяется переменная.

Порядок выполнения операций при вычислении выражений определяется с учетом приоритета операций и расставленных скобок. Приоритеты операций приведены в таблице, более высокий приоритет имеют группы операций, имеющих в таблице меньшее значение параметра «приоритет», т.е. расположенные выше.

Приоритет

Обозначение операции

Название операции

1

++

постфиксный инкремент

--

постфиксный декремент

2

sizeof

размер операнда в байтах

++

префиксный инкремент

--

префиксный декремент

!

логическое НЕ

+

унарный плюс

-

унарный минус

3

*

умножение

/

деление

%

деление по модулю

4

+

сложение

-

вычитание

5

<

меньше

>

больше

<=

меньше или равно

>=

больше или равно

6

==

равно

!=

не равно

7

&&

логическое И

8

||

логическое ИЛИ

9

? :

условная

Примеры:

++x-y/4-(5*d-y)

(a+2*b)/y--

Условное выражение

(x<0) ? 35 : 18 //если x<0, то выражение принимает значение 35, иначе 18

(a<b) ? b : a // максимальное из значений двух переменных

Соседние файлы в папке госы