C 語言中的函數聲明和定義 您可以通過以下方式創建並調用函數: // 創建一個函數 void myFunction() { printf("我剛被執行了!"); } int main() { myFunction(); // 調用函數 return 0; } 一個函數包括兩個部分: 聲明:函數名稱、 ...
C 語言中的函數聲明和定義
您可以通過以下方式創建並調用函數:
// 創建一個函數
void myFunction() {
printf("我剛被執行了!");
}
int main() {
myFunction(); // 調用函數
return 0;
}
一個函數包括兩個部分:
- 聲明:函數名稱、返回類型和參數(如果有)
- 定義:函數體(要執行的代碼)
void myFunction() { // 聲明
// 函數體 (定義)
}
為了優化代碼,建議將函數的聲明和定義分開。
您經常會看到 C 程式在 main() 之前有函數聲明,在 main() 之後有函數定義。這將使代碼更整齊,更易於閱讀:
// 函數聲明
void myFunction();
// 主方法
int main() {
myFunction(); // 調用函數
return 0;
}
// 函數定義
void myFunction() {
printf("我剛被執行了!");
}
另一個例子:
如果我們使用上一章關於函數參數和返回值的示例:
int myFunction(int x, int y) {
return x + y;
}
int main() {
int result = myFunction(5, 3);
printf("Result is = %d", result);
return 0;
}
// 輸出 8 (5 + 3)
相反,最好寫成這樣:
// 函數聲明
int myFunction(int, int);
// 主方法
int main() {
int result = myFunction(5, 3); // 調用函數
printf("Result is = %d", result);
return 0;
}
// 函數定義
int myFunction(int x, int y) {
return x + y;
}
這是一種很好的實踐,因為它可以使代碼更易於閱讀和理解。它還允許您在其他文件或模塊中使用函數聲明,而無需包含整個函數定義。
C 語言中的遞歸
遞歸是指使函數調用自身的技巧。這種技術提供了一種將複雜問題分解為更易於解決的簡單問題的途徑。
遞歸可能有點難懂。弄清楚它如何工作的最佳方法是進行試驗。
遞歸示例
將兩個數字相加很容易,但將一系列數字相加就比較複雜了。在以下示例中,遞歸用於通過將問題分解為將兩個數字相加的簡單任務來將一系列數字相加:
int sum(int k);
int main() {
int result = sum(10);
printf("%d", result);
return 0;
}
int sum(int k) {
if (k > 0) {
return k + sum(k - 1);
} else {
return 0;
}
}
示例解釋
當調用 sum() 函數時,它將參數 k 添加到所有小於 k 的數字的和中並返回結果。當 k 變成 0 時,函數只返回 0。程式運行時,會遵循以下步驟:
- 10 + sum(9)
- 10 + (9 + sum(8))
- 10 + (9 + (8 + sum(7)))
- ...
- 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + sum(0)
- 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0
由於函數在 k 為 0 時不調用自身,因此程式在此停止並返回結果。
開發人員應該非常小心地使用遞歸,因為它很容易寫出永遠不會終止的函數,或者會使用過多的記憶體或處理器資源的函數。然而,當正確編寫時,遞歸可以成為一種非常高效和數學上優雅的編程方法。
C 語言中的數學函數
C 語言中還提供了一系列數學函數,允許您對數字進行數學運算。
要使用它們,您必須在程式中包含 math.h 頭文件:
#include <math.h>
平方根
要找到某個數字的平方根,請使用 sqrt() 函數:
printf("%f", sqrt(16));
四捨五入
ceil() 函數將數字向上舍入到最接近的整數,floor() 函數將數字向下舍入到最接近的整數,並返回結果:
printf("%f", ceil(1.4));
printf("%f", floor(1.4));
冪次
pow() 函數返回 x 的 y 次方 (xy) 的值:
printf("%f", pow(4, 3));
其他數學函數
以下表格列出了 <math.h> 庫中其他常用的數學函數:
函數 | 描述 |
---|---|
abs(x) | 返回 x 的絕對值 |
acos(x) | 返回 x 的反正弦 |
asin(x) | 返回 x 的反正切 |
atan(x) | 返回 x 的反正切 |
cbrt(x) | 返回 x 的立方根 |
cos(x) | 返回 x 的餘弦 |
exp(x) | 返回 Ex 的值 |
sin(x) | 返回 x 的正弦 (x 以弧度為單位) |
tan(x) | 返回某個角度的正切 |
最後
為了方便其他設備和平臺的小伙伴觀看往期文章:
微信公眾號搜索:Let us Coding
,關註後即可獲取最新文章推送
看完如果覺得有幫助,歡迎 點贊、收藏、關註