小古銀的官方**(完整教程):
函式又叫做功能,就是將乙個功能的一堆實現**封裝到一起,而它的作用就是通過簡單的一條語句就可以使用這個功能,而不需要知道**怎樣寫。
舉個例子,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 // std::abs
#include // std::cout std::endl
int main(void)
輸出結果:
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
標準庫中。
C 入門教程
c 是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c 擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c 就適應的問題規模而論,大小由之。c 不僅擁有計算機高效執行的實用性特徵,...
C 入門教程(十二) 定義函式
小古銀的官方 完整教程 補充知識 既然用過std abs 函式,那麼,現在就以它為例,實現乙個myabs 函式來實現求絕對值。返回值型別 函式名稱 引數型別 引數名稱,引數型別 引數名稱 根據這個格式實現myabs 函式 include int myabs int num else return v...
C 入門教程(12) 定義函式
小古銀的官方 完整教程 既然用過std abs 函式,那麼,現在就以它為例,實現乙個myabs 函式來實現求絕對值。返回值型別 函式名稱 引數型別 引數名稱,引數型別 引數名稱 根據這個格式實現myabs 函式 include int myabs int num else return value ...