Использование указателей для связи функций

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

void swap(int*,int*);

void main(void){

int x=5, y=10;

printf ("Прервичные значения х=%d, y=%d\n",x, y);

swap (&x, &y);

printf ("Новые значения х=%d, y=%d\n", x, y);

}

void swap (int*v, int*z){

int u;

u=*v;

*v=*z; //x=y

*z=u;

}

Мы передали в функцию адреса переменных, поэтому при выходе х, у имееют новые значения. При передаче значений этого не происходило.

Вызов swap (x, y); swap (&x, &y);

Определение функции swap (int v, int z); swap (int*v, int*z);

Переменные х, y являются локальными в функции main, но мы, таким образом, можем на них воздействовать в другой функции.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: