C++函式返回值介紹(含return 0 與 return 1 與 return -1介紹)
很多人在學習C++ 的過程中應該會留意到返回值的問題,特別是習慣用:int main() 的猿類同伴們。我們需要在函式結尾寫個返回值。
int main(){
return 0;
}
接下來就給大家簡單介紹一下返回值。
一、返回值型別
C++函式可以返回多種型別,大致可分4種:
1. 返回void(無返回值);
2. 返回物件(內建型別物件和自定義物件);
3. 返回指標(普通指標和函式指標);
4. 返回引用;
1、返回void(無返回值);
初學C++用的就是void,如果沒有特殊情況,寫函式還是習慣用void。
void fun() { //預設return; }
2、返回物件(內建型別物件和自定義物件)
比較常見的就是返回值為int,因為C++中0可以表示假,非零數可以表示真。我比較喜歡通過返回int作為判斷語句。用起來比較方便。比如下面的Legal(A)函式返回值為int,全部程式碼在:【資料結構週週練】003順序棧與鏈棧這篇部落格。
if (Legal(A))
std::cout << "A 序列合法" << std::endl;
else
std::cout << "A 序列不合法" << std::endl;
也可以返回我們自定義的物件,含義與內建物件一樣。
Obj fun() { Obj obj; .... return obj; }
3、返回指標(普通指標和函式指標)
返回指標主要為返回普通指標和函式指標。
普通指標即函式宣告的資料型別是內建物件,如int,char等。返回的型別與函式型別相同,用一個同樣返回型別的變數作為返回值。
int * fun(int *p)
{
return p;
}
函式指標即定義一個函式,並將其返回值作為指標型別返回。
#include<iostream> using namespace std; int Max(int i, int j) { return i >= j ? i : j; } typedef int(*PFun)(int, int); PFun fun(int a) { cout << a << endl; return Max; } int main() { PFun pf; pf = fun(100); int max = pf(5, 8); cout << "max : " << max << endl; }
4、返回引用
int& fun(int &i)
{
return i;
}
二、return 0 與 return 1 與 return -1
1、return 0
第一個含義一般用在主函式結束時,按照程式開發的一般慣例,表示成功完成本函式。
第二個含義表示假,一般用於bool函式返回值。在C++中也可以直接用int,返回值為0時為假。巨集定義ERROR 與FLASE一般為0。
2、return 1
與return 0 的第二個含義相對應,表示真,正確。巨集定義TRUE,OK一般為1。
3、return -1
與return 0 的第一個含義相對應,表示返回一個代數值,一般用在子函式結尾。按照程式開發的一般慣例,表示該函式失敗,在資料結構中,一般指資料溢位,巨集定義OVERFLOW 一般為-1。
4、資料結構週週練中的返回值
有很多人跟我說,為什麼我的返回值一般都是返回1,因為函式結束時,一般用返回0表示函式無錯誤。其實函式原本的返回值應該為巨集定義的TRUE或者OK,為了簡化程式,將重點放在演算法本身上,所以很多巨集定義都沒有使用,如果規範來寫,資料結構中的很多型別應該是用typedef重新設定一個新名字,特別是結構體中的資料域。因為程式碼我最想體現,最希望大家瞭解到的是演算法本身,所以在函式返回值中,返回0代表錯誤,返回1代表正確,希望大家注意。