Давайте посмотрим другой пример. Следующий пример использует функцию называемого квадратного который пишет квадрата цифры от 1 до 10.
#include <stdio.h>
int square(int x); /* Function prototype */
int main()
{
int counter;
for (counter=1; counter<=10; counter++)
printf("Square of %d is %d\n", counter, square(counter));
return 0;
}
/* Define the function 'square' */
int square(int x)
{
return x * x;
}
Вывода данной программы будет выглядеть следующим образом :
Square of 1 is 1
Square of 2 is 4
Square of 3 is 9
Square of 4 is 16
Square of 5 is 25
Square of 6 is 36
Square of 7 is 49
Square of 8 is 64
Square of 9 is 81
Square of 10 is 100 |
Прототип функции кв объявляет функцию, которая принимает целочисленный параметр и возвращает целое число. Когда компилятор достигнет вызова на площади в главную программу, она может проверить вызова функции с функцией определения.
Когда программа достигает линии, что требует квадратные функции, программа для скачки функции и исполняет эту функцию, прежде чем возобновить свой путь через главную программу. Программы, которые не имеют тип возвращаемого значения должны быть объявлены с помощью силы. Таким образом, параметры для функции могут быть пропусков или В стоимость пропусков В справочнике.
Рекурсивные функции - это функция, которая называет себя. И этот процесс называется рекурсию.
Пасс функции по значению
Кв параметров функции в предыдущем примере передаются по значению. Это означает, что лишь копия переменной был передан в функцию. Любые изменения в стоимости не будет отражена обратно в призывая функционировать.
Следующий пример использует внешний стоимости и изменения стоимости прошло параметра которое никак не влияет на вызов функции. Функция count_down был признан недействительным, как не существует возврата в исходное положение.
#include <stdio.h>
void count_down(int x);
int main()
{
int counter;
for (counter=1; counter<=10; counter++)
count_down(counter);
return 0;
}
void count_down(int x)
{
int counter;
for (counter = x; counter > 0; counter--)
{
printf("%d ", x);
x--;
}
putchar('\n');
}
Выпуск программы будет выглядеть следующим образом :
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1 |
|