C 函式的返回值 返回引用型別 非引用型別

2021-08-20 08:37:08 字數 1147 閱讀 4211

函式的返回主要分為以下幾種情況:

1、主函式main的返回值:

允許主函式main沒有返回值就可結束;可將主函式main返回的值視為狀態指示器,返回0表示程式執行成功,其他大部分返回值則表示失敗。

2、返回非引用型別:

3、返回引用型別:

當函式執行完畢時,將釋放分配給區域性物件的儲存空間。此時對區域性物件的引用就會指向不確定的記憶體!返回指向區域性物件的指標也是一樣的,當函式結束時,區域性物件被釋放,返回的指標就變成了不再存在的物件的懸垂指標。

正確的方式:

int& abc(int a, int b, int c, int& result)

錯誤的方式:

int& abc(int a, int b, int c)

請注意,如果返回引用使用 this 指標,可以在函式的引數列表中省略

4、返回const型別

由於返回值直接指向了乙個生命期尚未結束的變數,因此,對於函式返回值(或者稱為函式結果)本身的任何操作,都在實際上,是對那個變數的操作,這就是引入const型別的返回的意義。當使用了const關鍵字後,即意味著函式的返回值不能立即得到修改!如下**,將無法編譯通過,這就是因為返回值立即進行了++操作(相當於對變數z進行了++操作),而這對於該函式而言,是不允許的。如果去掉const,再行編譯,則可以獲得通過,並且列印形成z = 7的結果。 

include 

include

const

int& abc(int a, int b, int c, int& result)

int main()

5、例子

下面是乙個段有錯誤的**,找出其中的錯誤。

#include 

using

namespace std;

int val()

int & ref()

int main()

正確**:

#include 

using

namespace std;

int j=3;//

j是全域性變數

int val()

int & ref()

int main()

C 函式的返回值 返回引用型別 非引用型別

函式的返回主要分為以下幾種情況 1 主函式main的返回值 允許主函式main沒有返回值就可結束 可將主函式main返回的值視為狀態指示器,返回0表示程式執行成功,其他大部分返回值則表示失敗。2 返回非引用型別 3 返回引用型別 當函式執行完畢時,將釋放分配給區域性物件的儲存空間。此時對區域性物件的...

C 函式的返回值 返回引用型別 非引用型別

在海大本科課程設計的 繼承實驗中 matrix 類的成員函式 unsignedchar at int row,int col 獲取第row行第col列的矩陣元素的值 涉及到了返回引用型別的函式返回值 函式的返回主要分為以下幾種情況 1 主函式main的返回值 允許主函式main沒有返回值就可結束 可...

C 函式的返回值 返回引用型別 非引用型別

函式的返回主要分為以下幾種情況 1 主函式main的返回值 允許主函式main沒有返回值就可結束 可將主函式main返回的值視為狀態指示器,返回0表示程式執行成功,其他大部分返回值則表示失敗。2 返回非引用型別 3 返回引用型別 當函式執行完畢時,將釋放分配給區域性物件的儲存空間。此時對區域性物件的...