可以的。sum創建的空間在函數結束時就析構了,但是由于函數返漏猜回sum的值,所以會在函數返回的堆棧中將sum的值保留返回的。
創新互聯服務項目包括雙鴨山網站建設、雙鴨山網站制作、雙鴨山網頁制作以及雙鴨山網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,雙鴨山網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到雙鴨山省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
這點碰鍵和sum是否還存在是沒有關系的,這是另一套返吵型編譯機制
樓上幾位說的基本詳細了,就是返回引用的意思,指返回值是一個引用。你老師說錯了。
所謂返回引用是指返回一個已存在對象的引用,(切記一定要是已經存在的)
所謂引用其實就是包裝指針的一個語法糖,
所謂語法糖就是說使用引用的地方用指針也可以實現,只不過要寫更多的代碼。
教科書上對引用這種數據類型講得很簡單,用它給變量起“別名”的作用甚至讓人覺得它是多姿核余的!粗冊褲
其實它真正的用武之地是在參數傳遞中!
眾所周知在C語言中不論是從實參到形參,還是從局部變量到返回值,都是清一色的值傳遞。
值傳遞意味著全拷貝,不僅效率低下,更多的時候它也并非是你想要的語義。
試想你要去月球,現在從你身上取一個細胞克隆出一個與你同樣的人,讓它去完成你的探月計劃,
然后回來給你講它的所感所受,或許你能聽得身臨其境,并且它的成功證明換成你也行,但這是你想要的嗎?
T fun(T t){return t;} void main() {T t; t=fun(t);}
在上面的代碼中你能發現幾個變量?
1.主函數main()中定義了局部變量t
2.調用fun()函數時,自動產生一個局部變量(也就是形參表中的變量t)用于接受實參巖簡的值
3.函數fun()返回它自己的形參變量t時,又自動了產生一個匿名臨時變量用于存放返回值
T fun(T t){return t;} void main() {T t; t=fun(t);}
與上面的代碼相比較,不存在第2個和第3個變量。
使用引用常見有以下幾種情形:(很不全面,拋磚引玉)
情形一:返回函數實參 T fun(T t){return t;}
情形二:返回靜態變量 T fun(){static T t; return t;}
情形三:返回當前對象 T T::fun(){return *this;}
情形四:返回新建對象 T fun(){return *new T;}
注意與最后一種情形類似但不等價的指針形式如下:
T fun(){T* pt=new T(); return *pt;} //除非顯式調用delete,否則對象(*pt)不會被釋放!
引用好像歲毀遲不是這么余指用的。。。
引用是作為函數的參數,傳遞給函數,這樣函數就乎李可以操作外部的變量。
返回值是指針。聲明為 int *whw(int a, int b),在里面return。
引用的用法是:int whw(int a, int b)。
新聞名稱:c語言函數返回引用 c語言如何調用函數返回值
網址分享:http://m.newbst.com/article24/ddpepje.html
成都網站建設公司_創新互聯,為您提供網站營銷、企業網站制作、動態網站、網站排名、網站導航、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯