在C語言中,遞歸方法的參數(shù)傳遞規(guī)則與普通函數(shù)的參數(shù)傳遞規(guī)則相同。參數(shù)可以是基本數(shù)據(jù)類型、結(jié)構(gòu)體、指針等。當調(diào)用遞歸函數(shù)時,實際參數(shù)會被傳遞給形式參數(shù),然后在函數(shù)內(nèi)部進行處理。遞歸函數(shù)的關(guān)鍵在于正確地定義基本情況(base case)和遞歸情況(recursive case)。
以下是一個簡單的遞歸函數(shù)示例,用于計算階乘:
#include<stdio.h>
// 遞歸函數(shù)定義
long long factorial(int n) {
if (n == 0) { // 基本情況
return 1;
} else { // 遞歸情況
return n * factorial(n - 1);
}
}
int main() {
int num = 5;
printf("Factorial of %d = %lld\n", num, factorial(num));
return 0;
}
在這個例子中,factorial
函數(shù)接受一個整數(shù)參數(shù)n
。當n
為0時,函數(shù)返回1作為基本情況。否則,函數(shù)返回n
乘以factorial(n - 1)
的結(jié)果,這是遞歸情況。這里的參數(shù)傳遞規(guī)則與普通函數(shù)相同,只是在遞歸調(diào)用時需要注意參數(shù)的變化。