C++入門教程(11):呼叫函式

小古銀發表於2019-05-12

小古銀的官方網站(完整教程):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

鞏固練習

  1. 從終端輸入一個數,代表弧度,然後輸出這個弧度的cossintan的值。可以使用std::cos()std::sin()std::tan(),這三個函式都在cmath標準庫中。
  2. 從終端輸入一個數,代表角度,然後使用std::cos()std::sin()std::tan()計算出這個角度對應的值。
  3. 輸入一個數,使用std::pow()函式求這個數的平方和立方。std::pow()函式在cmath標準庫中。

相關文章