小古銀的官方網站(完整教程):http://www.xiaoguyin.com/
C++入門教程視訊:https://www.bilibili.com/vide…
前言
函式又叫做功能,就是將一個功能的一堆實現程式碼封裝到一起,而它的作用就是通過簡單的一條語句就可以使用這個功能,而不需要知道程式碼怎樣寫。
舉個例子,std::sqrt()
函式的功能是:求一個數的根。std
是前面提到的名稱空間,而sqrt
就是這個函式的名字,這個函式在cmath
標準庫中。可以用下面的形式使用這個功能:
std::sqrt(100);
像上面這樣使用函式的功能,就叫做呼叫函式。上面程式碼中,100作為函式引數傳給函式,讓函式來計算它的運算結果。
std::sqrt()
函式是用來求根的,所以會有計算結果,可以用下面程式碼輸出計算結果:
std::cout << std::sqrt(100) << std::endl;
函式的計算結果叫做返回值。當然也可以用變數來儲存返回值:
double root = std::sqrt(100);
而整個過程,你都不需要考慮std::sqrt()
函式裡面的程式碼是怎樣寫的,這就是函式的作用。
C++中的標準庫(包含C語言的函式庫)有很多非常有用的函式。
呼叫函式
C++標準庫中有很多非常有用的函式,當然,如果想提高水平不妨嘗試以下實現標準庫的功能。但是實際工程中,建議能使用標準庫就不要自己再寫一個。因為,你手寫一個需要時間,呼叫不需要;而且你不留意還會寫出bug;還有,標準庫裡的東西編譯器都會有優化,你寫的不一定會比標準庫裡的快。
如果你呼叫的函式不是自己寫的,那你就需要知道函式怎麼呼叫,函式需要的引數應該怎麼填。
例如標準庫cmath
中的函式std::abs()
,它是用來求絕對值的,它只有一個引數而且這個引數只能接收數值,它會將這個引數轉換成絕對值,然後通過返回值返回。
#include <cmath> // std::abs
#include <iostream> // std::cout std::endl
int main(void)
{
std::cout << std::abs(-100) << std::endl;
return 0;
}
輸出結果:
100
對於標準庫裡的函式,可以參考我在第一篇教程中提到的兩個說明文件,也可以在網上找資料。
注意:C++可以呼叫C語言的標準庫,但是C語言的標準庫在C++中是棄用的,即不推薦使用。如:C++標準庫cmath
對應C語言的標準庫是math.h
。就是說,建議呼叫cmath
而不是math.h
鞏固練習
- 從終端輸入一個數,代表弧度,然後輸出這個弧度的
cos
、sin
、tan
的值。可以使用std::cos()
、std::sin()
、std::tan()
,這三個函式都在cmath
標準庫中。 - 從終端輸入一個數,代表角度,然後使用
std::cos()
、std::sin()
、std::tan()
計算出這個角度對應的值。 - 輸入一個數,使用
std::pow()
函式求這個數的平方和立方。std::pow()
函式在cmath
標準庫中。