函式的返回值的型別是引用型別和非引用型別的區別

2021-06-14 17:02:04 字數 512 閱讀 2280

1、函式的返回型別為非引用型別

當函式的返回型別為非引用型別時,其返回值可以是區域性物件,也可以是求解表示式。且其返回值會在呼叫該函式處複製給臨時物件,然後將這個臨時物件返回。(按值返回和按值傳遞是一樣的,返回和傳入的是該物件的乙個副本)。

2、函式的返回型別為引用型別

當函式返回型別為引用型別時,沒有複製返回值,相反,其返回的就是物件本身。千萬不要返回區域性物件的引用和不要返回指向區域性物件的指標的值(這裡講的區域性物件是指在該函式內定義的)。原因是:當函式執行完畢時,系統將會自動釋放分配給區域性物件的儲存空間。此時區域性物件的引用就會指向不確定的記憶體,返回指向區域性物件的指標也是一樣的。當函式結束時,區域性物件被釋放,返回的指標就變成了不再存在物件的懸浮指標。

返回型別是引用時,要求在函式的引數中,包含有以引用方式或指標存在的且需要被返回的引數。返回型別是引用和返回型別是指標是不一樣的,以引用方式操作的物件或指標指向的那個物件,其返回值是乙個物件或者是指標指向的那個物件(*p)。如果在返回型別前面加上const關鍵字,表示該函式的返回值不能夠立即修改。

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