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

2022-02-04 22:51:05 字數 1775 閱讀 6368

1、主函式main的返回值:

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

2、返回非引用型別:

3、返回引用型別:

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

4、返回const型別

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

#include #include 

using

namespace

std;

const

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

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

intmain()

兩者的區別請看**演示。

#include using

namespace

std;

int j=3;//

j是全域性變數

intval()

int & ref

()int

main()

1、主函式main的返回值:

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

2、返回非引用型別:

3、返回引用型別:

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

4、返回const型別

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

#include #include 

using

namespace

std;

const

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

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

intmain()

兩者的區別請看**演示。

#include using

namespace

std;

int j=3;//

j是全域性變數

intval()

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 返回引用型別 當函式執行完畢時,將釋放分配給區域性物件的儲存空間。此時對區域性物件的...