Указатели. Инициализация указателей. Операции с указателями. Ссылки

Операторы ветвления. Условный оператор if. Оператор switch.

Условный оператор if:

используется для разветвления процесса вычисления на 2 направления

if (выражение) оператор 1;

[else оператор 2;]

Оператор switch:

предназначен для разветвления процесса вычисления на несколько направлений

switch ()

{ case константное выражение1: [список операторов]

case константное выражение 2: [список операторов]

case константное выражение n: [список операторов]

[default: список операторов] }

- выход из оператора обычно выполняется с помощью операторов break или return

- все константные выражения должны иметь разные значения, но быть одного и того же целочисленного типа.

9)Операторы цикла в С++. Цикл с предусловием. Цикл с постусловием. Цикл с параметром.

Операторы цикла :

- используются для организации многократно повторяющегося вычисления

- любой цикл состоит из:

1)тела цикла

2)начальных установок

3)модификации параметра цикла

4)проверки условия продолжения выполнения цикла

- один проход цикла называется итерацией

- параметры – переменные, изменяющиеся и используемые при проверки условия

- счетчик цикла – целочисленные параметры цикла, изменяющиеся с постоянным шагом на каждой итерации

Цикл с предусловием while:

while (выражение) оператор;

int a=100, sum=0;

while (a!=0) {sum+=a; a--;}

Цикл с постусловием do while:

do оператор while (выражение);

int a=100, sum=0;

do {sum+=a; a--;} while (a!=0);

Цикл с параметром for:

for ( инициализация; выражение; модификации) оператор;

- любая часть оператора for может быть опущена, но точки с запятой обязательны

int sum=0;

for (int a=1; a<=100;a++) sum+=a;

Операторы передачи управления. Оператор goto. Оператор break. Оператор continue. Оператор return.

4 оператора, изменяющих естественный порядок выполнения выражения:

goto – безусловный переход

break – выход из цикла

continue – переход к следующей итерации

return - возврат из функции

GOTO:

формат– goto метка;

…..

метка: оператор;

метка – обычный идентификатор

BREAK:

используется внутри операторов цикла для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого он находится

CONTINUE:

используется только внутри тела любого цикла. Его действие – пропуск всех операторов, оставшихся до конца тела цикла, и передача управления на начало следующего

RETURN:

завершает выполнение функции и передает управление в точку ее вызова

return [выражение];

если тип void, return должен отсутствовать

Указатели. Инициализация указателей. Операции с указателями. Ссылки.

Указатели служат для хранения адресов областей памяти.

3 вида указателей:

- на объект

- на функцию

- на void

Указатель на объект содержит адрес области памяти, в которой хранятся данные определенного типа.

формат: тип *имя;

Указатель на функцию содержит адрес начала машинного кода какой-либо функции.

формат: тип (*имя) (список типов аргументов);

Указатель на void применяется в случаях, когда конкретный тип объекта, адрес которого требуется хранить, не определен. Указателю на void можно присваивать значение указателя любого типа, а также сравнивать его с любым указателем.

Инициализация указателей:

1) присваивание указателю имени существующего объекта:

- с помощью операции получения адреса(&)

- с помощью значения другого инициализированного указателя

- с помощью имени массива или функции, которые трактуются как адрес

2) присваивание указателю адреса области памяти в общем виде

3) присваивание пустого (нулевого) значения

4) выделение участка динамической памяти и присваивание ее адреса указателю:

- при помощи операции С++ new

- при помощи Си-функции malloc

Допустимые операции с указателями:

- разадресация или косвенное обращение к объекту (*) – предназначена для доступа к величине, адрес которой хранится в указателе. Конструкцию *имя_указателя можно считать именем переменной, на которую ссылается указатель.

- присваивание (=)

- сложение с целой константой

- вычитание 2ух указателей

- сравнение 2ух указателей

- приведение к типу другого указателя или к целому

Арифметические операции:

- инкремент перемещает указатель к следующему элементу массива, декремент- к предыдущему. Значение указателя изменяется на величину sizeof(тип указателя)

- увеличение или уменьшение указателя на константу приводит к изменению его значения на величину этой константы, умноженную на размер типа указателя

- разность двух указателей – это разность их значений, деленная на размер типа указателя

- суммирование 2 указателей не допускается

Ссылка – синоним имени, указанного при инициализации ссылки

формат: тип &имя = инициализатор;

После инициализации ссылке не может быть присвоена другая переменная