Quelles sont les connaissances de base des fonctions du langage C ?
Les connaissances de base des fonctions du langage C comprennent :
1. Définition, déclaration et appel
Fonction : |
Un morceau de code réutilisable
函数: |
一段可以重复使用的代码
|
函数三要素: |
返回值 函数名 函数形参列表
|
函数声明: |
包含函数的三要素 |
函数定义: |
函数的具体实现 |
返回值: |
如果一个函数没有返回值,则写成 void |
函数形参列表: |
如果没有参数,写成空 ,变量之间用逗号隔开 |
|
Trois éléments de la fonction : |
Nom de la fonction de valeur de retour Liste des paramètres de fonction
|
Déclaration de fonction : | Contient les trois éléments d'une fonction
Définition de la fonction : |
Béton implémentation de la fonction |
Valeur de retour : |
Si une fonction n'a pas de valeur de retour, elle est écrite comme void |
Liste des paramètres de fonction : |
S'il n'y a pas de paramètres, écrits vides, séparez les variables par des virgules |
2. Déclaration de fonction :
Lors de la déclaration d'une fonction, le paramètre formel peut être sans nom de variable, ou seul le type peut être
int add(int, int);
3. Définition de la fonction :
Lors de la définition d'une fonction, le paramètre formel doit avoir un nom de variable
int add(int a, int b)
{
int sum = a + b;
return sum;
}
4. Appel de fonction :
Si la fonction est définie au-dessus de la fonction principale, il n'est pas nécessaire d'écrire une déclaration de fonction.
Si la fonction est définie en dessous de la fonction principale, la déclaration doit être écrite au dessus de la fonction principale
int main()
{
int a = 10;
int b = 20;
// 函数调用的时候,传的参数叫实参
int sum= add(a, b);
printf (“sum = %d\n”, sum);
return 0;
}
5. Nom de la fonction
Le nom de la fonction est l'adresse d'entrée de la fonction
Définir un pointeur de fonction :
int (*p)(int a.int b) =add;
6. Récursif function
Une fonction qui s'appelle elle-même dans son corps de fonction est appelée un appel récursif. Ce type de fonction est appelé une fonction récursive. L'exécution d'une fonction récursive s'appellera à plusieurs reprises, entrant à chaque fois dans un nouveau niveau.
Calculez n ! La formule de calcul de la factorielle n! est la suivante :
Programmation selon la formule :
long factorial(int n)
{
long result;
if(n ==0 || n ==1)
{
result = 1;
}
else
{
result = factorial(n-1) * n; // 递归调用
}
return result;
}
C'est une fonction récursive typique. Après avoir appelé factorial, le corps de la fonction est entré. La fonction terminera son exécution uniquement lorsque n== 0 ou n==1, sinon elle continuera à s'appeler.
Puisque le paramètre réel de chaque appel est n-1, c'est-à-dire que la valeur de n-1 est attribuée au paramètre formel n, donc la valeur du paramètre réel de chaque récursion est réduite par 1 jusqu'au dernier n- Lorsque la valeur de 1 est 1, effectuez à nouveau un appel récursif et la valeur du paramètre formel n est également 1. La récursion se terminera et quittera couche par couche.
Par exemple, pour trouver 5 !, appelez factorial(5). Lors de la saisie du corps de la fonction factorielle, puisque n=5 n'est pas égal à 0 ou 1, result = factorial(n-1) * n est exécuté, c'est-à-dire result = factorial(5-1) * 5;, et le la prochaine étape consiste à appeler factorial(4). C'est la première récursion.
Après quatre appels récursifs, la valeur du paramètre réel est 1, c'est-à-dire que factorial(1) est appelé. À ce stade, la récursion se termine et commence à revenir couche par couche. La valeur de factorial(1) est 1, la valeur de factorial(2) est 12=2, la valeur de factorial(3) est 23=6, la valeur de factorial(4) est 64=24 et le retour final la valeur de factorielle(5) est 245=120.
Remarque :
1. Afin d'empêcher l'appel récursif de se poursuivre sans terminaison, il doit y avoir un moyen de mettre fin à l'appel récursif dans la fonction. Une méthode courante consiste à ajouter un jugement conditionnel Lorsqu'une certaine condition est remplie, l'appel récursif ne sera plus effectué puis reviendra couche par couche.
2. Les appels récursifs sont non seulement difficiles à comprendre, mais aussi très coûteux. Il n'est pas recommandé d'utiliser la récursivité sauf si cela est nécessaire. De nombreux appels récursifs peuvent être remplacés par des itérations (boucles).
Tutoriel recommandé : "Tutoriel vidéo C
"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!