Void, Рекурсія
Тип повернення void у C
У мові програмування C функції, які оголошені з певним типом повернення, повинні мати оператор return, що повертає значення, яке відповідає цьому типу. Однак, існують сценарії, коли функція не потребує нічого повертати – можливо, вона просто відображає текст на екрані. Для таких випадків функція повинна бути оголошена з типом void
.
Main.c
12345678910111213#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
Ключове слово void
вказує, що функція не повертає значення, і воно також може використовуватися в контексті вказівників. Спроба оголосити змінну типу void
призведе до помилки, оскільки компілятор не зрозуміє, скільки пам'яті виділити.
Ось навмисна помилка для ілюстрації.
Main.c
12345678#include <stdio.h> int main() { void variable; return 0; }
Заглиблення в рекурсію
C підтримує можливість функції викликати саму себе, техніку, відому як рекурсія.
Уявіть рекурсію як дію розтягування, а потім відпускання гумової стрічки. Її часто використовують у математичних операціях, таких як обчислення факторіалів.
Наприклад: 3! = 3 x 2 x 1
Факторіали часто використовуються для наближення значень функцій шляхом розкладання цих функцій у ряд Тейлора або Маклорена.
Примітка
Натхнення для цього розділу прийшло одразу після того, як автор завершив лабораторну роботу в університеті. Завданням було наблизити значення котангенса до певної точності шляхом розкладання його в ряд Тейлора. І, звичайно, обчислення факторіала було незамінним.
Main.c
1234567891011121314151617181920#include <stdio.h> int factorial(int n) { // if n = 0 or 1, because 0! = 1 and 1! = 1 if (n == 0 || n == 1) return 1; // recursion case else return n * factorial(n - 1); } int main() { int n = 3; printf("factorial(%d) = %d\n", n, factorial(n)); return 0; }
У контексті рекурсії функція продовжуватиме викликати саму себе, поки не зустріне умову n == 0 || n == 1
. Як тільки ця умова буде виконана, результати з наступних викликів функції factorial()
повертаються у зворотному порядку, подібно до складання акордеону. До моменту, коли досягнуто кроку 6, початковий виклик factorial(3)
поверне 6
.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.63
Void, Рекурсія
Свайпніть щоб показати меню
Тип повернення void у C
У мові програмування C функції, які оголошені з певним типом повернення, повинні мати оператор return, що повертає значення, яке відповідає цьому типу. Однак, існують сценарії, коли функція не потребує нічого повертати – можливо, вона просто відображає текст на екрані. Для таких випадків функція повинна бути оголошена з типом void
.
Main.c
12345678910111213#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
Ключове слово void
вказує, що функція не повертає значення, і воно також може використовуватися в контексті вказівників. Спроба оголосити змінну типу void
призведе до помилки, оскільки компілятор не зрозуміє, скільки пам'яті виділити.
Ось навмисна помилка для ілюстрації.
Main.c
12345678#include <stdio.h> int main() { void variable; return 0; }
Заглиблення в рекурсію
C підтримує можливість функції викликати саму себе, техніку, відому як рекурсія.
Уявіть рекурсію як дію розтягування, а потім відпускання гумової стрічки. Її часто використовують у математичних операціях, таких як обчислення факторіалів.
Наприклад: 3! = 3 x 2 x 1
Факторіали часто використовуються для наближення значень функцій шляхом розкладання цих функцій у ряд Тейлора або Маклорена.
Примітка
Натхнення для цього розділу прийшло одразу після того, як автор завершив лабораторну роботу в університеті. Завданням було наблизити значення котангенса до певної точності шляхом розкладання його в ряд Тейлора. І, звичайно, обчислення факторіала було незамінним.
Main.c
1234567891011121314151617181920#include <stdio.h> int factorial(int n) { // if n = 0 or 1, because 0! = 1 and 1! = 1 if (n == 0 || n == 1) return 1; // recursion case else return n * factorial(n - 1); } int main() { int n = 3; printf("factorial(%d) = %d\n", n, factorial(n)); return 0; }
У контексті рекурсії функція продовжуватиме викликати саму себе, поки не зустріне умову n == 0 || n == 1
. Як тільки ця умова буде виконана, результати з наступних викликів функції factorial()
повертаються у зворотному порядку, подібно до складання акордеону. До моменту, коли досягнуто кроку 6, початковий виклик factorial(3)
поверне 6
.
Дякуємо за ваш відгук!