1. 程式人生 > >C++函式返回值介紹(含return 0 與 return 1 與 return -1介紹)

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代表正確,希望大家注意。