Передача параметров в функцию

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

· для каждого формального параметрасоздаётся локальная переменная;

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

Пример 5:

int sum(int a, int b)

{ return a+b;

}

void main()

{ int x =5,y=10,z;

z = sum(x,y);

}

При вызове функции создаются две локальные a b переменные, которые инициализируются фактическими параметрами x y:

a=x

b=y

Передача параметров по значению

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

Пример 6: функция power() возводит base в n-ю степень.

#define dec 25

int power (int base, int n)

{ int p;

for (p = 1; n > 0; --n)

p = p * base;

return p;

}

void main()

{ i, p=0;

for(i=0; i<5; i++)

p=p+power(dec, i);

….

}

При вызове функции: base=dec, n=i

Обратите внимание, что бы мы ни делали с n внутри функции power(), это не окажет никакого влияния на переменную i в вызывающей программе.

Передача массива в функцию

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

· Передать массив определенного размера, определение функции:

int func (char s[100])

{... }

Такое определение функции ограничивает её применение, обрабатываться будут только массивы размером 100.

Вызов функции:

int A[100];

func (A)

· Передать массив неопределенного размера, определение функции:

int func (char s[], int n)

{... }

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

Вызов функции:

// Пример обработки массива в 100 элементов.

int A[100];

func (A, 100)


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



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