Was sind die Grundkenntnisse der C-Sprachfunktionen?
Grundkenntnisse der C-Sprachfunktionen umfassen:
1. Definition, Deklaration und Aufruf
Funktion: |
Ein Stück Code, der wiederverwendet werden kann
函数: |
一段可以重复使用的代码
|
函数三要素: |
返回值 函数名 函数形参列表
|
函数声明: |
包含函数的三要素 |
函数定义: |
函数的具体实现 |
返回值: |
如果一个函数没有返回值,则写成 void |
函数形参列表: |
如果没有参数,写成空 ,变量之间用逗号隔开 |
|
Drei Elemente der Funktion: |
Rückgabewert Funktionsname Funktionsparameterliste
|
Funktionsdeklaration: | Enthält die drei Elemente einer Funktion
Funktionsdefinition: |
Beton Implementierung der Funktion |
Rückgabewert: |
Wenn eine Funktion keinen Rückgabewert hat, wird sie als void geschrieben |
Liste der Funktionsparameter: |
Wenn keine Parameter vorhanden sind, werden sie als leere Variablen geschrieben und durch Kommas getrennt |
2. Funktionsdeklaration:
Bei der Deklaration einer Funktion kann der formale Parameter ohne Variablennamen sein, oder nur der Typ kann
int add(int, int);
sein 3. Funktionsdefinition:
Bei der Definition einer Funktion muss der formale Parameter einen Variablennamen haben
int add(int a, int b)
{
int sum = a + b;
return sum;
}
4. Funktionsaufruf:
Wenn die Funktion oberhalb der Hauptfunktion definiert ist, muss keine Funktionsdeklaration geschrieben werden.
Wenn die Funktion unterhalb der Hauptfunktion definiert ist, muss die Deklaration oberhalb der Hauptfunktion geschrieben werden
int main()
{
int a = 10;
int b = 20;
// 函数调用的时候,传的参数叫实参
int sum= add(a, b);
printf (“sum = %d\n”, sum);
return 0;
}
5. Funktionsname
Der Funktionsname ist die Eingabeadresse der Funktion
Definieren Sie einen Funktionszeiger:
int (*p)(int a.int b) =add;
6. Rekursiv Funktion
Eine Funktion, die sich selbst innerhalb ihres Funktionskörpers aufruft, wird als rekursiver Aufruf bezeichnet. Diese Art von Funktion wird als rekursive Funktion bezeichnet. Die Ausführung einer rekursiven Funktion ruft sich selbst wiederholt auf und betritt jedes Mal eine neue Ebene.
Berechnen Sie n! Die Berechnungsformel der Fakultät n! lautet wie folgt:
Programmierung nach der Formel:
long factorial(int n)
{
long result;
if(n ==0 || n ==1)
{
result = 1;
}
else
{
result = factorial(n-1) * n; // 递归调用
}
return result;
}
Dies ist eine typische rekursive Funktion. Nach dem Aufruf von „factorial“ wird der Funktionskörper eingegeben. Die Funktion beendet die Ausführung nur, wenn n== 0 oder n==1, andernfalls ruft sie sich weiterhin selbst auf.
Da der tatsächliche Parameter jedes Aufrufs n-1 ist, wird dem formalen Parameter n der Wert von n-1 zugewiesen, sodass der Wert des rekursiven tatsächlichen Parameters um 1 dekrementiert wird Jedes Mal bis zum letzten n- Wenn der Wert von 1 1 ist, führen Sie einen erneuten rekursiven Aufruf durch, und der Wert des formalen Parameters n ist ebenfalls 1. Die Rekursion wird Schicht für Schicht beendet und beendet.
Um beispielsweise 5! zu finden, rufen Sie Factorial(5) auf. Da n=5 nicht gleich 0 oder 1 ist, wird bei der Eingabe des Fakultätsfunktionskörpers Ergebnis = Fakultät(n-1) * n; ausgeführt, d. h. Ergebnis = Fakultät(5-1) * 5;, und das Der nächste Schritt besteht darin, Factorial(4) aufzurufen. Dies ist die erste Rekursion.
Nach vier rekursiven Aufrufen ist der Wert des tatsächlichen Parameters 1, das heißt, es wird Factorial(1) aufgerufen. An diesem Punkt endet die Rekursion und beginnt, Schicht für Schicht zurückzukehren. Der Wert von Fakultät(1) ist 1, der Wert von Fakultät(2) ist 12=2, der Wert von Fakultät(3) ist 23=6, der Wert von Fakultät(4) ist 64=24 und die endgültige Rückgabe Der Wert von Faculty(5) ist 245=120.
Hinweis:
1. Um zu verhindern, dass der rekursive Aufruf ohne Beendigung fortgesetzt wird, muss es eine Möglichkeit geben, den rekursiven Aufruf innerhalb der Funktion zu beenden. Eine übliche Methode besteht darin, eine bedingte Beurteilung hinzuzufügen. Wenn eine bestimmte Bedingung erfüllt ist, wird der rekursive Aufruf nicht mehr durchgeführt und dann Schicht für Schicht zurückgegeben.
2. Rekursive Aufrufe sind nicht nur schwer zu verstehen, sondern auch sehr teuer. Es wird nicht empfohlen, Rekursion zu verwenden, es sei denn, dies ist erforderlich. Viele rekursive Aufrufe können durch Iterationen (Schleifen) ersetzt werden.
Empfohlenes Tutorial: „C-Video-Tutorial
“
Das obige ist der detaillierte Inhalt vonWas sind die Grundkenntnisse der C-Sprachfunktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!