亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2777 | 回復(fù): 9
打印 上一主題 下一主題

[C++] 請問函數(shù)里的變數(shù)會自動釋放嗎? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-08-11 23:50 |只看該作者 |倒序?yàn)g覽
code是這樣的
  1. #include <iostream>
  2. using namespace std;
  3. int a(int b)
  4. {
  5.     int c;
  6.     c=b​​;
  7.     return c;
  8.    
  9.     }
  10. int main()
  11. {
  12. a(2);
  13. a(3);


  14. system("pause");
  15. return 0;
  16. }
復(fù)制代碼
在a(2)第一次呼叫并宣告int c
請問return c離開這函式后int c就自動釋放了嗎?
在a(3)進(jìn)去在宣告in​​t c這個(gè)是全新的int c嗎?(并永遠(yuǎn)不可能發(fā)生重復(fù)宣告錯(cuò)誤發(fā)生嗎?)
如果這函式常用里面的int c改成全域變數(shù),會比較好嗎?

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
2 [報(bào)告]
發(fā)表于 2013-08-12 02:32 |只看該作者
局部變量無副作用,別擔(dān)心

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2013-08-12 10:39 |只看該作者
在a(2)第一次呼叫并宣告int c
請問return c離開這函式后int c就自動釋放了嗎?
在a(3)進(jìn)去在宣告in​​t c這個(gè)是全新的int c嗎?(并永遠(yuǎn)不可能發(fā)生重復(fù)宣告錯(cuò)誤發(fā)生嗎?)
如果這函式常用里面的int c改成全域變數(shù),會比較好嗎?


局部變量保存在棧中, a(2)和a(3) 執(zhí)行后, 變量C都會自動釋放, 所以按你的說法,每次調(diào)用都可以認(rèn)為是一個(gè)新的,獨(dú)立的變量。 不過執(zhí)行函數(shù) a時(shí), 變量c的地址都一樣。如果改成全局變量, 那多次調(diào)用變量C還是同一個(gè)變量。

論壇徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辭舊歲徽章
日期:2015-03-03 16:54:152015年亞洲杯之約旦
日期:2015-02-11 14:38:37雙魚座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29雙子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亞洲杯之科威特
日期:2015-04-17 16:51:51
4 [報(bào)告]
發(fā)表于 2013-08-12 11:26 |只看該作者
呼叫、宣告、變數(shù),LZ是臺灣人嗎?

論壇徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16賽季CBA聯(lián)賽之江蘇
日期:2017-11-27 11:42:3515-16賽季CBA聯(lián)賽之八一
日期:2017-04-12 14:26:2815-16賽季CBA聯(lián)賽之吉林
日期:2016-08-20 10:43:1215-16賽季CBA聯(lián)賽之廣夏
日期:2016-06-23 09:53:58程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-02-11 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-02-09 06:20:0015-16賽季CBA聯(lián)賽之上海
日期:2015-12-25 16:40:3515-16賽季CBA聯(lián)賽之廣夏
日期:2015-12-22 09:39:36程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-24 06:20:002015亞冠之德黑蘭石油
日期:2015-08-07 09:57:302015年辭舊歲徽章
日期:2015-03-03 16:54:15
5 [報(bào)告]
發(fā)表于 2013-08-12 11:44 |只看該作者
函數(shù)的自動變量在棧上面,只會起到中間計(jì)算的作用

函數(shù)執(zhí)行完畢之后,該函數(shù)的棧幀內(nèi)容就不再需要了

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2013-08-12 12:20 |只看該作者
zhaohongjian000 發(fā)表于 2013-08-12 11:26
呼叫、宣告、變數(shù),LZ是臺灣人嗎?


我也感覺是的。{:3_189:}

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2013-08-13 14:37 |只看該作者
自動變量自動釋放  

論壇徽章:
1
申猴
日期:2013-09-09 10:22:56
8 [報(bào)告]
發(fā)表于 2013-08-14 09:43 |只看該作者
樓主估計(jì)是看了侯捷的書, ,,

論壇徽章:
17
處女座
日期:2013-08-27 09:59:352015亞冠之柏太陽神
日期:2015-07-30 10:16:402015亞冠之薩濟(jì)拖拉機(jī)
日期:2015-07-29 18:58:182015年亞洲杯之巴勒斯坦
日期:2015-03-06 17:38:17摩羯座
日期:2014-12-11 21:31:34戌狗
日期:2014-07-20 20:57:32子鼠
日期:2014-05-15 16:25:21亥豬
日期:2014-02-11 17:32:05丑牛
日期:2014-01-20 15:45:51丑牛
日期:2013-10-22 11:12:56雙子座
日期:2013-10-18 16:28:17白羊座
日期:2013-10-18 10:50:45
9 [報(bào)告]
發(fā)表于 2013-08-14 11:07 |只看該作者
回復(fù) 1# 801901987


    你沒有理解作用域和生存周期的問題,int是scalar type,scalar type對象的賦值都是by value的方式。比如說return c;那么c的值就copy到了函數(shù)的返回值中,函數(shù)退出后c就不存在,這時(shí)沒有關(guān)系因?yàn)閏的值已經(jīng)copy到內(nèi)存中函數(shù)的返回值中了。C標(biāo)準(zhǔn)規(guī)定的存儲周期類型只有三種:static,automatic,allocated。存儲周期類型決定對象的生命周期(An object has a storage duration that determines its lifetime. There are three storage
durations: static, automatic, and allocated.),全局變量的存儲類型為static,普通局部變量的存儲類型為automatic。存儲類型為static的對象在main函數(shù)(The function called at program startup is named main.)調(diào)用前進(jìn)行初始化(All objects with static storage duration shall be initialized (set to their initial values) before program startup.),automatic類型的變量的生存周期僅限于包含它的塊(A block with initialization of an object that has automatic storage duration),當(dāng)執(zhí)行進(jìn)入代碼塊時(shí)初始化局部變量,在執(zhí)行完代碼塊時(shí)銷毀局部變量。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2013-08-14 12:56 |只看該作者
801901987 發(fā)表于 2013-08-11 23:50
code是這樣的在a(2)第一次呼叫并宣告int c
請問return c離開這函式后int c就自動釋放了嗎?
在a(3)進(jìn)去在宣 ...


樓主遇到這種疑惑時(shí),建議不要使用基本類型,自己寫個(gè)類,在構(gòu)造和析構(gòu)中加打印語句,就一目了然了,比臆想揣測來得感性得多,否則想半天也很抽象。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP