Повторное использование кода, улучшение читаемости кода.
Функция - набор инструкций, которые можно использовать много раз, не повторяя их каждый раз заново.
Синтаксис
int function()
{
return;
{
// int - тип данных возвращаемый функцией
// () - операторы которые функция принимает
// return - то, что функция будет возвращать. Переменные или сразу действие.
Простые примеры функций:
Функция суммы чисел
int sum(int a,int b) // функция возвращающая целочисленное число
{
int result = a + b; // сумма
return result; // то, что будет возвращать функция
// либо можно сразу написать return a + b;
}
int main()
{
cout << sum(2,5) << endl; // 2,5 - a,b
// вместо 2,5 могут быть любые int переменные
}
Функция случайного числа
int get_random_number() {
return rand() % 10; // Возвращает случайное число от 0 до 9
}
Функция проверяющая число на четность
bool isEven(int number)
{
if (number % 2 == 0)
{
return true;
}
else
{
return false;
}
}
int main() {
int num = 8;
isEven(num);
{
Интересная особенность передачи параметров в функцию связана с инкрементом. Если мы хотим вывести через функцию инкремент числа, то нам следует использовать именно префиксный инкремент, т.к постфиксный может увеличить переменную после условного вывода.
int increment(int a)
{
return ++a; // префиксный инкремент, иначе результат будет неправильный
}
int main()
{
int x = 1;
cout << increment(x) << endl;
}
Передача массива в функцию.
Мы не можем изменять напрямую переменные нашей программы с помощью функции т.к передаем в нее через параметры только значения, а не саму переменную.
Однако когда мы передаем в параметр функции массив, то это расценивается как указатель поэтому мы можем напрямую заполнять массив.
void FillArray(int array[], const int ARRAY_SIZE) // функция заполнения массива
{
for (int i = 0; i < ARRAY_SIZE; i++)
{
array[i] = rand() % 10;
}
}
void PrintArray(int array[], const int ARRAY_SIZE) // функция вывода массива
{
for (int i = 0; i < ARRAY_SIZE; i++)
{
cout << array[i] << endl;
}
}
int main()
{
const int SIZE = 10;
int arr[SIZE]; // наш массив
FillArray(arr, SIZE); // в функции передаем сам массив и его размер
PrintArray(arr, SIZE);
}