- •Функции
- •Решение
- •Описание функции
- •Описание функции
- •Описание функции: примеры
- •Прототип функции
- •Пример: неверное обращение
- •Пример: верное обращение к
- •Задача
- •Решение
- •Вызов функции
- •Вызов функции: пример
- •Передача параметров
- •Передача параметров
- •Текст программы void main()
- •Результат выполнения программы:
- •Указатели
- •Указатели
- •Указатели на объект
- •Примеры
- •Инициализация указателей
- •Операции с указателями
- •Операции с указателями
- •Операции с указателями
- •Операции с указателями
- •Операции с указателями
- •Передача параметров по адресу
- •Вызов функции
- •Передача параметров по ссылке
- •Ссылки
- •Ссылки
- •Ссылки
- •Ссылки
- •Передача параметров по cсылке
- •Вызов функции
- •Пример
- •Пример
Ссылки
Синтаксис описания ссылки: тип & имя;
Пример: int a;
int & pa=a;//pa – альтернативное имя для a
Ссылки
Переменная-ссылка должна инициализироваться при ее описании, если она не является параметром функции
После инициализации переменную ссылку изменить нельзя
Тип ссылки должен совпадать с типом величины, на которую он ссылается
Ссылки
Нельзя определять указатели на ссылки, создавать массивы ссылок и ссылки на ссылки
Ссылки
Ссылки чаще всего применяются в качестве параметров функций и типов возвращаемых значений
При использовании ссылок в качестве параметров функций параметры передаются по адресу, при этом не нужно проводить разадресацию.
Передача параметров по cсылке
Пример:
void swap(int &a, int &b) { int temp=a;
a=b;
b=temp;
}
Вызов функции
void main()
{ int a=10,b=2;
printf(“\n a=%d b=%d”,a,b); swap(a, b);
printf(\n new \n a=%d b=%d”,a,b);
}
Результат: A=10 b=2 New
A=2 b=10
Пример
void f(int a, int *b, int& k); void main()
{ int i=1,j=3,k=3; printf(“i j k\n”);
printf(“%d %d %d\n”,i,j,k); f(i, &j, k);
printf(“%d %d %d\n”,i,j,k);
}
Пример
void f(int a, int *b, int& k); { a++; (*b)++; k++;
}
Результат:
i j k |
//i передается по значению |
1 2 3 |
//j передается по адресу |
1 3 4 |
//k передается по ссылке |
