ВУЗ:
Составители:
Рубрика:
Рассмотрим программу, в которой осуществляется обмен значений
переменных с помощью функции swap ().
/* программа # 1.16 */
void swap(int *,int *);
void main()
{
int a = 10,b = 20;
swap (&a,&b);
}
/*эта функция выполняет обмен значений переменных */
void swap(int *x,int *y)
{
int c; /* временная переменная */
c = *x; /* запоминаем значение переменной, на которую ссылается
указатель х */
/* с = х; это неверно так как переменной с будет присвоен адрес ,а не
само значение переменной, на которую ссылается указатель х */
*x =*y; /* переменной,на которую ссылается указатель х, присваиваем
значение переменной, на которую ссылается указатель y */
*y = c; /* переменной,на которую ссылается указатель y, присваиваем
значение из буфера */
При вызове функции передаются адреса переменных a и b. Это значит, что
формальные параметры функции должны быть описаны как указатели на
соответствующий тип данных. При таком описании формальных параметров
вызываемой программе становятся доступными адреса переменных из
вызывающей программы, которые являются в ней локальными. Если известны
адреса, то применимы операции чтения и возврата по адресу.
Часто в программах требуется передавать функциям объекты классов или
структурные переменные. Если передавать объект по значению, то будут иметь
место большие накладные расходы на копирование памяти. Проще передавать
указатель на объект – всего 4 байта памяти, содержащие адрес объекта. Доступ
к члену класса в этом случае внутри функции должен осуществляться
оператором ‘->’.
#include <vcl.h>
#pragma hdrstop
#pragma argsused
void calcul ( class A * ptr);
class A
17
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »