亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 教學(xué)--第二十章 指針 二 為指針分配和釋放空間.htm

?? 《白話c++網(wǎng)頁版》是一本用淺顯易懂的并具有點(diǎn)幽默的語調(diào)來講述c++的高深的內(nèi)容
?? HTM
?? 第 1 頁 / 共 5 頁
字號(hào):
      <P>“原有的變量”,可以比喻成指向一間原有的,并且有主的房間。而“新分配的內(nèi)存空間”,則像是一個(gè)“臨時(shí)建筑物”。我們必須在不用它的時(shí)候,主動(dòng)將它拆遷。拆遷的工作由<SPAN 
      lang=en-us>delete</SPAN>來完成。
      <P> 
      <P>當(dāng)指針變量通過<SPAN lang=en-us> new 
      </SPAN>,而得到一個(gè)內(nèi)存地址后,我們就可以像以前的所說的,通過該指針,通過*號(hào),而對該內(nèi)存地址(一個(gè)無名的變量),進(jìn)行操作。
      <P>如:
      <P><SPAN lang=en-us>int* p = new int;</SPAN>
      <P><SPAN lang=en-us>*p = 100;</SPAN>
      <P><SPAN lang=en-us>cout &lt;&lt; *p &lt;&lt; endl;</SPAN>
      <P> 
      <P>屏幕將輸出100。
      <P> 
      <H4><B><A name=20.2.2>20.2.2</A> 在<SPAN lang=en-us>new 
      </SPAN>時(shí)初始化內(nèi)存的值</B></H4>
      <P> 
      <P><SPAN lang=en-us>new </SPAN>也可以在申請內(nèi)存空間時(shí),直接設(shè)置該段內(nèi)存里要放點(diǎn)什么<SPAN 
      lang=en-us>.</SPAN>
      <P> 
      <P>語法:
      <P> 
      <P>指針變量 <SPAN lang=en-us>= <B>new</B> </SPAN>數(shù)據(jù)類型<B><SPAN 
      lang=en-us>(</SPAN>初值</B><SPAN lang=en-us><B>)</B>;</SPAN>
      <P> 
      <P>這樣,上例可以改為:
      <P> 
      <P><SPAN lang=en-us>int* p = new int<B>(100)</B>;</SPAN>
      <P><SPAN lang=en-us>cout &lt;&lt; *p &lt;&lt; endl;</SPAN>
      <P> 
      <P><SPAN lang=zh-cn>如果你申請的是字符類型的空間</SPAN>,<SPAN 
      lang=zh-cn>并且想初始化為‘A':</SPAN>
      <P> 
      <P>char* pchar = new char('A');
      <P> 
      <H4><B><SPAN lang=en-us><A name=20.2.3>20.2.3</A> delete</SPAN></B></H4>
      <P> 
      <P>語法:
      <P><SPAN lang=en-us><B>delete</B> </SPAN>指針變量<SPAN lang=en-us>;</SPAN>
      <P> 
      <P><SPAN lang=en-us>delete </SPAN>將釋放指定指針?biāo)赶虻膬?nèi)存空間。
      <P> 
      <P>舉例:
      <P> 
      <P><SPAN lang=en-us>int* p;</SPAN>
      <P><SPAN lang=en-us>p = new int;</SPAN>
      <P> 
      <P><SPAN lang=en-us>*p = 100;</SPAN>
      <P><SPAN lang=en-us>cout &lt;&lt; *p &lt;&lt; endl;</SPAN>
      <P> 
      <P><SPAN lang=en-us>delete p;</SPAN>
      <P> 
      <P><SPAN lang=en-us>system("PAUSE");</SPAN>
      <P> 
      <P>注意,當(dāng)一個(gè)指針接受<SPAN 
      lang=en-us>delete</SPAN>操作后,它就又成了一個(gè)“指向不明”的指針。盡管我們可以猜測它還是指向“原來的房子”,然而,事實(shí)上,那座“房子”已經(jīng)被<SPAN 
      lang=en-us>delete</SPAN> “拆遷”掉了。
      <P> 
      <H4><B><A name=20.2.4>20.2.4</A> 實(shí)驗(yàn): <SPAN lang=en-us>new </SPAN>和<SPAN 
      lang=en-us> delete</SPAN></B></H4>
      <P> 
      <P>很簡單的例子。
      <P>第一步:
      <P>首先,在CB新建一個(gè)控制臺(tái)程序。然后把上一小節(jié)的代碼放到<SPAN lang=en-us>main()</SPAN>函數(shù)內(nèi)。運(yùn)行。結(jié)果如下:
      <P align=center> 
      <P align=center><IMG height=34 
      src="教學(xué)--第二十章 指針 二 為指針分配和釋放空間.files/ls20.h1.gif" width=172 border=0>
      <P align=center><SPAN lang=en-us>(new </SPAN>和<SPAN lang=en-us> 
      delete)</SPAN>
      <P> 
      <P>按任意鍵退出后,保存工程<SPAN lang=en-us>(Ctrl + Shift + S)</SPAN>。
      <P> 
      <P>第二步:
      <P>接下來我們來觀察指針變量被<SPAN 
      lang=en-us>delete</SPAN>之后,所指向的內(nèi)存會(huì)是什么。但,這是一件犯了C、C++編程大忌的事:訪問一個(gè)已經(jīng)<SPAN 
      lang=en-us>delete</SPAN> 的指針的值。如果你最近運(yùn)氣很差,你的CB可能會(huì)被強(qiáng)行退出。所以,你明白我們?yōu)槭裁匆却姹P了,對不?
      <P> 
      <P>在前面的代碼中,加入以下加粗加紅的一行<SPAN lang=en-us>(</SPAN>同時(shí),你也應(yīng)注意我的加的注釋<SPAN 
      lang=en-us>)</SPAN>:
      <P> 
      <P><SPAN lang=en-us>int* p;</SPAN>
      <P><SPAN lang=en-us>p = new int;</SPAN>
      <P> 
      <P><SPAN lang=en-us>*p = 100;</SPAN>
      <P><SPAN lang=en-us>cout &lt;&lt; *p &lt;&lt; endl;</SPAN>
      <P> 
      <P><SPAN lang=en-us>delete p;&nbsp;&nbsp; 
      <B>&nbsp;//p</B></SPAN><B>所指向的內(nèi)存空間已經(jīng)被釋放</B>
      <P> 
      <P><B><FONT color=#ff0000><SPAN lang=en-us>cout &lt;&lt; *p &lt;&lt; 
      endl;&nbsp; </SPAN></FONT><SPAN lang=en-us>//</SPAN>我們故意去訪問此時(shí)p所指的內(nèi)存</B>
      <P> 
      <P><SPAN lang=en-us>system("PAUSE");</SPAN>
      <P> 
      <P>運(yùn)行結(jié)果:
      <P> 
      <P align=center><IMG height=53 
      src="教學(xué)--第二十章 指針 二 為指針分配和釋放空間.files/ls20.h2.gif" width=173 border=0>
      <P align=center>(訪問<SPAN lang=en-us>delete</SPAN>之后的指針)
      <P> 
      <P>44<SPAN lang=en-us>244844</SPAN>??在你的機(jī)器可能不是這個(gè)數(shù),但一定同樣是怪怪的值。<SPAN 
      lang=en-us> </SPAN>原來是好端端的100,現(xiàn)在卻成了44<SPAN 
      lang=en-us>244844</SPAN>。不要問我這是為什么?昨天來時(shí),美眉還住在這里一座別致小閣樓里,今日故地重游,這里竟成廢墟一片,依稀只見破墻上尚有:<B>“拆!——城建局”</B>的字樣?!
      <P> 
      <P><SPAN lang=en-us>new </SPAN>是管建房的,而 <SPAN 
      lang=en-us>delete</SPAN>就一個(gè)字:拆!
      <P> 
      <P><SPAN lang=zh-cn>請大家自行在CB上完成本實(shí)驗(yàn)。我沒有提供本題的實(shí)際工程。</SPAN>
      <H4><B><SPAN lang=en-us><A name=20.2.5>20.2.5</A> new </SPAN>和<SPAN 
      lang=en-us> delete </SPAN>的關(guān)系</B></H4>
      <P> 
      <P>如果只有“建房”而沒有“拆房”,那么程序就會(huì)占用內(nèi)存越來越多。所以,當(dāng)使用<SPAN lang=en-us>new 
      </SPAN>為某個(gè)指針分配出內(nèi)存空間后,一定要記得在不需要再使用時(shí),用<SPAN lang=en-us>delete 
      </SPAN>刪除。下面是一個(gè)例子。演示<SPAN lang=en-us>new </SPAN>和<SPAN lang=en-us> delete 
      </SPAN>的對應(yīng)使用。
      <P> 
      <P><SPAN lang=en-us>//</SPAN>建屋和入住:
      <P><SPAN lang=en-us>1) int* p = new int(100);</SPAN>
      <P> 
      <P><SPAN lang=en-us>//</SPAN>使用:
      <P><SPAN lang=en-us>2) cout &lt;&lt; *p &lt;&lt; endl;</SPAN>
      <P> 
      <P><SPAN lang=en-us>//</SPAN>拆:
      <P><SPAN lang=en-us>3) delete p;</SPAN>
      <P> 
      <P>看,第1句,申請了4字節(jié)的內(nèi)存空間,同時(shí)存入值為100的整數(shù)。
      <P>第2句,在屏幕上輸出入住者的值<SPAN lang=en-us> (100)</SPAN>。
      <P>第3句,釋放內(nèi)存(這4字節(jié)被系統(tǒng)收回準(zhǔn)備做其它用途)。入住者呢?自然消失了。
      <P> 
      <P>前面舉的例子都是在<SPAN lang=en-us> new </SPAN>一個(gè)<SPAN lang=en-us> int 
      </SPAN>類型,其它類型也一樣:
      <P> 
      <P><SPAN lang=en-us>char* a = new char('A');</SPAN>
      <P><SPAN lang=en-us>cout &lt;&lt; *a &lt;&lt; endl;</SPAN>
      <P><SPAN lang=en-us>*a = 'B';</SPAN>
      <P><SPAN lang=en-us>cout &lt;&lt; *a &lt;&lt; end;</SPAN>
      <P><SPAN lang=en-us>delete a;</SPAN>
      <P> 
      <P><SPAN lang=en-us>bool* b = new bool;</SPAN>
      <P><SPAN lang=en-us>*b = true;</SPAN>
      <P> 
      <P><SPAN lang=en-us>if (*b)</SPAN>
      <P><SPAN lang=en-us>&nbsp;&nbsp; cout &lt;&lt; "true" &lt;&lt; 
endl;</SPAN>
      <P><SPAN lang=en-us>else</SPAN>
      <P><SPAN lang=en-us>&nbsp; cout &lt;&lt; "fale" &lt;&lt; endl;</SPAN>
      <P> 
      <P>但是這些都是簡單數(shù)據(jù)類型,如果要分配數(shù)組一樣的連續(xù)空間,則需要使另一對武器。
      <P> 
      <H3><B><A name=20.3><SPAN lang=en-us>20.3</SPAN></A><SPAN lang=zh-cn> 
      </SPAN><SPAN lang=en-us>new [] </SPAN>和<SPAN lang=en-us> delete 
      []</SPAN></B></H3>
      <P> 
      <P>new / delete <SPAN lang=zh-cn>用于分配和釋放單個(gè)變量的空間,而</SPAN> new [] / delete[] 
      <SPAN lang=zh-cn>則用于分配連續(xù)多個(gè)變量的存間。</SPAN>
      <P> 
      <H4><B><A name=20.3.1>20.3.1</A> new[] / delete[] <SPAN 
      lang=zh-cn>基本用法</SPAN></B></H4>
      <P> 
      <P><B>new [] 語法:</B>
      <P> 
      <P>指針變量<SPAN lang=en-us> = <B>new</B> </SPAN>數(shù)據(jù)類型<B><SPAN 
      lang=en-us>[</SPAN>元素個(gè)數(shù)<SPAN lang=en-us>]</SPAN></B>
      <P> 
      <P>語法實(shí)例:
      <P> 
      <P><SPAN lang=en-us>int* p = new int[20];</SPAN>
      <P> 
      <P>首先,你需要迅速回想一下,如果是<SPAN lang=en-us> int* p = new int(20); 
      </SPAN>那么該是什么作用?否則你很容易在事后把二者混了。
      <P> 
      <P>實(shí)例中,用<SPAN lang=en-us> new </SPAN>申請分配了20個(gè)連續(xù)的整數(shù)所需的空間,即:<SPAN 
      lang=en-us>20 * sizeof(int) = 80</SPAN>個(gè)字節(jié)。
      <P>圖示為:
      <P align=center><IMG height=395 
      src="教學(xué)--第二十章 指針 二 為指針分配和釋放空間.files/ls20.h3.gif" width=421 border=0>
      <P align=center><SPAN lang=en-us>(</SPAN>指針變量p指向一段連續(xù)的內(nèi)存空間<SPAN 
      lang=en-us>)</SPAN>
      <P> 
      <P><SPAN lang=en-us>new int </SPAN>只是分配了一個(gè)整數(shù)的內(nèi)存空間,而<SPAN lang=en-us> new 
      int[N]</SPAN>卻分配了N個(gè)整數(shù)的連續(xù)空間。<SPAN lang=zh-cn>看來,</SPAN>new[] <SPAN 
      lang=zh-cn>比</SPAN> new <SPAN lang=zh-cn>“威力更猛”,所以,我們同樣得記得:用</SPAN> new [] 
      <SPAN lang=zh-cn>分配出空間,當(dāng)不在需要時(shí),必須及時(shí)調(diào)用</SPAN> delete [] <SPAN 
      lang=zh-cn>來釋放。</SPAN>
      <P> 
      <P><B>delete [] <SPAN lang=zh-cn>語法:</SPAN></B>
      <P> 
      <P>delete [] <SPAN lang=zh-cn>指針變量</SPAN>;
      <P> 
      <P><SPAN lang=zh-cn>如:</SPAN>
      <P> 
      <P>//<SPAN lang=zh-cn>分配了可以存放1000個(gè)</SPAN>int<SPAN 
      lang=zh-cn>的連續(xù)內(nèi)存空間:</SPAN>
      <P>int* p = new int[1000];&nbsp; 
      <P> 
      <P><SPAN lang=zh-cn>//然后使用這些空間:</SPAN>
      <P><SPAN lang=zh-cn>……</SPAN>
      <P> 
      <P><SPAN lang=zh-cn>//最后不需要了,及時(shí)釋放:</SPAN>
      <P><B>delete []</B> p;
      <P> 
      <H4><B><A name=20.3.2>20.3.2</A> new []/ delete[] <SPAN 
      lang=zh-cn>示例</SPAN></B></H4>
      <P> 
      <P><SPAN lang=zh-cn>在</SPAN> Windows XP <SPAN lang=zh-cn>、</SPAN>Windows 
      NT<SPAN lang=zh-cn> 或</SPAN> Windows 2000<SPAN lang=zh-cn>中,按</SPAN> Ctrl 
      + Alt + Del (<SPAN lang=zh-cn>其它操作系統(tǒng),如</SPAN>Windows98/Me<SPAN 
      lang=zh-cn>等千萬不要按些組合鍵,否則電腦將重啟</SPAN>)<SPAN lang=zh-cn>。可以調(diào)出 </SPAN>Windows 
      <SPAN 
      lang=zh-cn>任務(wù)管理器,其中要以看出當(dāng)前粗略的的內(nèi)存使用量。下面我們結(jié)合該工具,寫一個(gè)程序,先分配100M的內(nèi)存,再釋放。</SPAN>
      <P> 
      <P><SPAN lang=zh-cn>這是程序代碼的抓圖:</SPAN>
      <P align=center><IMG height=298 
      src="教學(xué)--第二十章 指針 二 為指針分配和釋放空間.files/ls20.h11.gif" width=541 border=0>
      <P> 
      <P><SPAN lang=zh-cn>各步運(yùn)行結(jié)果: </SPAN>
      <TABLE id=AutoNumber3 style="BORDER-COLLAPSE: collapse" 
      borderColor=#111111 cellSpacing=0 cellPadding=0 width="100%" border=1>
        <TBODY>
        <TR>
          <TD width="60%"><SPAN lang=zh-cn>程序顯示</SPAN></TD>
          <TD align=middle width="40%"><SPAN lang=zh-cn>任務(wù)管理器抓圖</SPAN></TD></TR>
        <TR>
          <TD width="60%">
            <P align=center><SPAN lang=zh-cn>第一步:分配內(nèi)存之前</SPAN>
            <P align=center><IMG height=42 
            src="教學(xué)--第二十章 指針 二 為指針分配和釋放空間.files/ls20.h5.gif" width=353 
            align=middle border=0> </P></TD>
          <TD align=middle width="40%"><IMG height=65 
            src="教學(xué)--第二十章 指針 二 為指針分配和釋放空間.files/ls20.h6.gif" width=78 
            align=absMiddle border=0>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线亚洲一区观看| 久久精品噜噜噜成人88aⅴ| 丝袜美腿亚洲一区二区图片| 麻豆高清免费国产一区| 国产成人av网站| 欧美中文字幕一二三区视频| 精品国产电影一区二区| 中文字幕一区在线观看| 天天色天天操综合| 国产精品一区在线观看乱码| 欧美专区日韩专区| 久久日韩精品一区二区五区| 有码一区二区三区| 国产专区综合网| 欧美在线观看18| 国产三级久久久| 日日摸夜夜添夜夜添精品视频| 国产精品中文有码| 欧美日韩电影在线| 亚洲欧美在线视频观看| 久久国产人妖系列| 欧美午夜宅男影院| 国产精品久久久久久久浪潮网站| 日本vs亚洲vs韩国一区三区二区| 99视频热这里只有精品免费| 精品对白一区国产伦| 亚洲香肠在线观看| www.日韩精品| 精品国产a毛片| 视频在线在亚洲| 色菇凉天天综合网| 中文在线一区二区| 极品美女销魂一区二区三区 | 日韩美女精品在线| 精品一区二区在线观看| 欧美私人免费视频| 国产精品久久免费看| 狠狠色2019综合网| 欧美一区午夜精品| 亚洲国产综合色| 91在线码无精品| 国产农村妇女毛片精品久久麻豆 | 日韩欧美一级在线播放| 亚洲午夜一区二区| 成人sese在线| 中文字幕不卡在线播放| 久久99九九99精品| 欧美一区二区三区四区高清| 亚洲高清不卡在线观看| 色综合久久中文字幕| 中文字幕av不卡| 国产激情视频一区二区在线观看| 日韩欧美的一区二区| 午夜精品在线视频一区| 欧美日韩在线播放三区| 亚洲综合在线第一页| 色婷婷精品久久二区二区蜜臂av| 中文字幕av资源一区| 国产在线一区观看| 久久亚洲春色中文字幕久久久| 免费成人美女在线观看| 91精品午夜视频| 五月天久久比比资源色| 欧美四级电影在线观看| 亚洲国产另类精品专区| 欧美日韩综合一区| 亚洲国产综合91精品麻豆| 色噜噜狠狠成人中文综合| 亚洲色图在线看| 色呦呦网站一区| 亚洲永久免费av| 欧美三级三级三级| 日韩综合小视频| 日韩欧美一二三区| 国产乱码精品一区二区三| 精品国产123| 国内精品视频一区二区三区八戒| 精品国产123| 国产激情偷乱视频一区二区三区 | a级精品国产片在线观看| 国产欧美一区二区精品秋霞影院| 国产九九视频一区二区三区| 国产日韩欧美制服另类| 99天天综合性| 亚洲综合男人的天堂| 91麻豆精品国产91久久久久久| 奇米综合一区二区三区精品视频 | 高潮精品一区videoshd| 国产精品家庭影院| 欧洲精品一区二区| 日韩av网站免费在线| 精品国内片67194| 丁香婷婷综合激情五月色| 1区2区3区精品视频| 欧美色图在线观看| 激情五月婷婷综合| 日本一区二区动态图| 一本久久a久久精品亚洲| 丝瓜av网站精品一区二区| 精品国产自在久精品国产| 国产a区久久久| 一区二区三区四区蜜桃| 5858s免费视频成人| 国产精品18久久久久久久久久久久| 国产精品超碰97尤物18| 欧美日韩国产片| 国产精品资源站在线| 悠悠色在线精品| 欧美电影免费提供在线观看| 成人av网站免费| 日韩va欧美va亚洲va久久| 久久久久9999亚洲精品| 欧美在线你懂的| 国产一区二区三区免费观看| 亚洲欧美一区二区三区久本道91| 欧美一级一级性生活免费录像| 激情欧美一区二区三区在线观看| 亚洲欧美日韩中文字幕一区二区三区| 91精品国产aⅴ一区二区| 成人综合婷婷国产精品久久免费| 亚洲一区二区三区中文字幕 | 大尺度一区二区| 偷窥国产亚洲免费视频| 国产精品女同一区二区三区| 欧美剧在线免费观看网站| 国产**成人网毛片九色| 日韩电影免费在线| 亚洲丝袜另类动漫二区| 精品成人一区二区三区| 在线观看免费亚洲| 国产v综合v亚洲欧| 人人爽香蕉精品| 亚洲综合一区二区| 国产精品素人一区二区| 欧美一区二区在线免费观看| 91亚洲精品乱码久久久久久蜜桃| 精久久久久久久久久久| 亚洲va国产va欧美va观看| 国产精品久久久久久一区二区三区| 日韩一区二区三| 欧美午夜一区二区三区免费大片| 国产91清纯白嫩初高中在线观看| 天堂va蜜桃一区二区三区| 亚洲精品日日夜夜| 国产精品久久久久久久第一福利 | 懂色av一区二区三区蜜臀| 视频一区二区欧美| 亚洲精品成人a在线观看| 久久品道一品道久久精品| 欧美一区二区精品| 欧美在线你懂得| 色综合视频一区二区三区高清| 国产毛片精品一区| 免费av网站大全久久| 亚洲成人激情综合网| 一区二区三区不卡视频| 中文av一区特黄| 欧美精品一区二区三区四区| 制服.丝袜.亚洲.中文.综合| 一本色道综合亚洲| 97精品久久久午夜一区二区三区| 国产精品影视网| 国产一区二区视频在线播放| 蜜桃精品视频在线| 日韩精品电影一区亚洲| 日一区二区三区| 亚洲成av人在线观看| 一区二区三区精品| 亚洲精品免费视频| 亚洲精品国产a| 亚洲综合久久av| 亚洲精品免费电影| 亚洲激情在线激情| 亚洲欧美国产77777| 亚洲视频在线观看一区| 国产精品你懂的| 中文字幕一区二区三区精华液| 欧美激情一区在线| 欧美国产国产综合| 国产精品成人午夜| 最新欧美精品一区二区三区| 亚洲欧洲国产日韩| 亚洲精品免费视频| 亚洲一二三四在线| 同产精品九九九| 麻豆国产精品777777在线| 麻豆精品视频在线观看视频| 精品一区二区在线播放| 国产精品一区二区91| 成人一级片网址| 波波电影院一区二区三区| 一本在线高清不卡dvd| 精品污污网站免费看| 4438亚洲最大| 久久综合九色综合欧美98| 国产偷国产偷亚洲高清人白洁| 国产精品不卡一区二区三区| 樱花影视一区二区| 日韩av一区二区在线影视| 国产一区视频在线看|