c c 返回值為指標 引用時注意的地方

2021-08-17 22:21:51 字數 441 閱讀 9803

全域性變數,區域性靜態變數,區域性動態分配變數 都可以作為函式返回值。

但是,區域性自動變數不能作為函式返回值。

可以看出來,函式內部等區域性變數,儲存在棧中的變數是不能作為返回值的,雖然可以讀取正確的值,但是這是一塊未分配的記憶體,當別的程序用到時就會出錯,這個指標相當於野指標。返回值可以是區域性動態分配的記憶體空間,這一部分分配在堆上,在主動釋放之前別的程序是無法使用的記憶體區域。

不管是指標還是引用都是如此。

c 返回值為引用

與返回原值的區別 return的位址和返回值的位址是同乙個,也就是佔據著同一塊記憶體,因此要求此時return的東西必須是乙個實體 有儲存位址 不能是乙個作用域僅在函式中的區域性變數 例如 int fun a fun 就會報錯。因為a找不到它應該存在的位址在 int fun int c a fun ...

14 函式返回值為引用?

函式返回值可以是引用嗎?當然可以,只是在函式返回引用的時候需要注意幾點。以下給出討論!函式在返回值的時候,會產生乙個臨時變數作為函式返回值的副本 而函式在返回引用的時候,不會產生副本!那麼既然是引用,那麼到底是引用誰呢?首先,我們知道要清楚函式返回引用的幾種常見形式 1 引用函式的引數,當然該引數 ...

C 方法返回值為引用時會發生什麼

在學習qt的過程中,看到有些內建的qt庫中存在一些返回引用的方法,例如 等等,所以有點好奇,返回值與返回引用之間有什麼區別呢?遂有了這篇文章。在寫驗證程式的時候又對c 的建構函式 拷貝建構函式 賦值建構函式有了新的理解,文章末會放出完整的測試 第一步,我們需要乙個類,給他起個名字,就叫a吧。clas...