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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 第20章 指針二 為指針分配和釋放空間.htm

?? 用非常通俗的語言介紹了C++和C
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0049)http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm --><HTML><HEAD><TITLE>教學--第二十章 指針 二 為指針分配和釋放空間</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>P {
	MARGIN: 1px 2px; LINE-HEIGHT: 150%
}
.節標題 {
	FONT-WEIGHT: bold; FONT-SIZE: 12pt
}
TD {
	FONT-SIZE: 9pt
}
.tdtitle {
	FONT-SIZE: 20pt
}
.celltopline {
	BORDER-TOP: #000000 1px solid
}
.menucell {
	FONT-SIZE: 10pt
}
#glowtext {
	FONT-SIZE: 10pt; FILTER: glow(color=red,strength=1); WIDTH: 100%
}
A:link {
	FONT: 10pt 宋體; COLOR: blue; TEXT-DECORATION: none
}
A:visited {
	FONT: 10pt 宋體; COLOR: purple; TEXT-DECORATION: none
}
A:active {
	FONT: 10pt 宋體; COLOR: red; TEXT-DECORATION: underline
}
A:hover {
	COLOR: blue; TEXT-DECORATION: underline
}
</STYLE>

<META content="MSHTML 6.00.2900.2769" name=GENERATOR></HEAD>
<BODY leftMargin=0 topMargin=3>
<CENTER>
<TABLE height=105 cellSpacing=4 cellPadding=4 width=760 border=0>
  <TBODY>
  <TR>
    <TD 
    style="FONT-SIZE: 10pt; TEXT-INDENT: 20px; LINE-HEIGHT: 150%; FONT-FAMILY: &Euml;&Icirc;&Igrave;&aring;" 
    width="100%" height=210>
      <H2>第二十章 指針 二 <SPAN lang=zh-cn>為指針分配和釋放空間</SPAN></H2>
      <P>  
      <P><A href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.1">20.1 
      理解指針的兩種“改變”</A> 
      <P><A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.1.1">&nbsp; 
      20.1.1 改變指針的值</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.1.2">20.1.2 
      改變指針所指的變量的值</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.1.3">20.1.3 
      兩種改變?一種改變?</A> 
      <P><A href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2">20.2 
      C++ 方式的內存分配與釋放 new 和 delete</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2.1">20.2.1 new 
      </A>
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2.2">20.2.2 
      在new 時初始化內存的值</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2.3">20.2.3 
      delete</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2.4">20.2.4 實驗: 
      new 和 delete</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2.5">20.2.5 new 
      和 delete 的關系</A> 
      <P><A href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.3">20.3 
      new [] 和 delete []</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.3.1">20.3.1 
      new[] / delete[] 基本用法</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.3.2">20.3.2 new 
      []/ delete[] 示例</A> 
      <P>&nbsp;<A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.3.3"> 20.3.3 
      詳解指向連續空間的指針</A> 
      <P><A href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.4">20.4 
      delete/delete[] 的兩個注意點</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.4.1">20.4.1 
      一個指針被刪除時,應指向最初的地址</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.4.2">20.4.2 
      已釋放的空間,不可重復釋放</A> 
      <P><A href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.5">20.5 C 
      方式的內存管理</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.5.1">20.5.1 
      分配內存 malloc 函數</A> 
      <P>&nbsp;<A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.5.2"> 20.5.2 
      釋放內存 free 函數</A> 
      <P>&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.5.3">20.5.3 
      重調空間的大小: realloc 函數</A> 
      <P>&nbsp;<A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls20.htm#20.5.4"> 20.5.4 
      malloc、realloc、free的例子</A> 
      <P>
      <P>  
      <H3><B><A name=20.1>20.1</A> 理解指針的兩種“改變”</B></H3>
      <P>普通變量(非指針,簡單類型變量)只能改變值: 
      <P>  
      <P><SPAN lang=en-us>1) int a = 100;</SPAN> 
      <P><SPAN lang=en-us>2) ...</SPAN> 
      <P><SPAN lang=en-us>3) a = 200;</SPAN> 
      <P>  
      <P>第<SPAN lang=en-us> </SPAN>1<SPAN lang=en-us> 
      </SPAN>行代碼,聲明int類型變量a,并且初始化a的值為100。 
      <P>到第<SPAN lang=en-us> </SPAN>3<SPAN lang=en-us> </SPAN>行代碼,變量a的值被改變成200。 
      <P>  
      <P>對于非指針的簡單變量,能被程序改變的,只有這一種。而指針變量,似乎有兩種改變。 
      <P>  
      <H4><A name=20.1.1>20.1.1</A> 改變指針的值</H4>
      <P>這一點和普通變量一致。但要特別注意,“改變指針的值”引起的結果是什么?其實就是“改變指針的指向”。 
      <P>因為,指針的值是某個變量的地址。假如指針P原來的值是A變量的地址,現在改為B變量的地址。我們稱為:“P由指向A改為指向B”。這就是指針的第一種改變。 

      <P>以下是示例代碼: 
      <P><SPAN lang=en-us>int* P;</SPAN> 
      <P><SPAN lang=en-us>int A,B;</SPAN> 
      <P>  
      <P><SPAN lang=en-us>1) P = &amp;A;</SPAN> 
      <P><SPAN lang=en-us>2) ...</SPAN> 
      <P><SPAN lang=en-us>3) P = &amp;B;</SPAN> 
      <P>  
      <P><SPAN lang=en-us>1) </SPAN>行代碼中,P 的值為<SPAN lang=en-us> 
      &amp;A</SPAN>,即P指向變量A。 
      <P>到3)行代碼中,<SPAN lang=en-us>P</SPAN>的值變為<SPAN 
      lang=en-us>&amp;B</SPAN>,即改為指向變量B。 
      <P>  
      <P>下面講:指針的第二種改變<SPAN lang=zh-cn>。</SPAN>通過指針,改變指針所指的變量的值。 
      <P>  
      <H4><A name=20.1.2>20.1.2</A> 改變指針所指的變量的值</H4>
      <P>  
      <P>復習前一章,我們知道通過 * (地址解析符),可以得到、或改變指針所指的變量的值。 
      <P>  
      <P><SPAN lang=en-us>int* P;</SPAN> 
      <P><SPAN lang=en-us>int A = 100;</SPAN> 
      <P>  
      <P><SPAN lang=en-us>P = &amp;A;</SPAN> 
      <P><B><SPAN lang=en-us>*P = 200;</SPAN></B> 
      <P>  
      <P><SPAN lang=en-us>cout &lt;&lt; A &lt;&lt; endl;</SPAN> 
      <P>  
      <P>代碼中加粗的那一行:<SPAN lang=en-us>*P = 200; </SPAN>,其作用完全等同于:<SPAN 
      lang=en-us>A = 200;</SPAN> 
      <P>所以,最后一行輸出的結果是 200。 
      <P>  
      <P>這就是指針的第二種改變:所指變量的值,被改變了。 
      <P>  
      <H4><A name=20.1.3>20.1.3</A> <SPAN lang=zh-cn>兩種改變?一種改變?</SPAN></H4>
      <P>  
      <P>兩種改變的意義不同: 
      <P>改變一:改變指針本身的值(改變指向)。 
      <P>改變二:改變指針指向的變量的值。 
      <P>  
      <P>從代碼上看: 
      <P>第一種改變,P = <SPAN lang=en-us>&amp;A; </SPAN>左值(等號左邊的值)是變量本身,右值則是一個地址。 
      <P>而第二種改變,<SPAN lang=en-us>*P = </SPAN>200<SPAN lang=en-us>; 
      </SPAN>左值通過星號對P操作,來取得P指向的變量;右值是普通的值。 
      <P>  
      <P>理解<SPAN lang=en-us>,</SPAN>區分對指針的兩種改變,才能學會如何使用指針。 
      <P>  
      <P>請思考:上一章講的“指針的加減操作”,是對指針的哪一種改變? 
      <P>  
      <P>最后需要說明,嚴格意義上,指針仍然只有一種改變,即改變指針本身的值。改變指針指向的變量,應視為對另一變量的改變,只不過在代碼上,它通過指針來進行,而不是直接對另一變量進行操作。 

      <P>  
      <P>為指針分配、釋放內存空間 
      <P>  
      <P>之前,我們給指針下的定義是“指針是一個變量,它存放的值是另一個變量的地址”。 
      <P>比如: 
      <P><SPAN lang=en-us>int a;</SPAN> 
      <P><SPAN lang=en-us>int* p = &amp;a;</SPAN> 
      <P>  
      <P>看,a 就是“另一個變量”,p指向了a。 
      <P>我們知道,變量總是要占用一定的內存空間,比如上面的a,就占用了4個字節(<SPAN 
      lang=en-us>sizeof(int))</SPAN>。這四個字節屬于誰?當然屬于變量a,而不是p。 
      <P>  
      <P>現在要講的是:也可以單獨為指針分配一段新的內存空間。這一段內容不屬于某個變量。 
      <P>  
      <H3><SPAN lang=zh-cn><A name=20.2>20.2</A> </SPAN><SPAN lang=en-us>C++ 
      </SPAN>方式的內存分配與釋放<SPAN lang=en-us> new </SPAN>和<SPAN lang=en-us> 
      delete</SPAN></H3>
      <P><SPAN lang=zh-cn>在內存管理上,C++ 和 C 
      有著完全不同的兩套方案。當然,C++的總是同時兼容C。C的那一套方案在C++里同樣可行。</SPAN> 
      <P><SPAN lang=zh-cn>我們首先看看純C++的那一套:</SPAN> new <SPAN lang=zh-cn>和</SPAN> 
      delete<SPAN lang=zh-cn>。</SPAN> 
      <P>new <SPAN lang=zh-cn>,從字面上看意思為 “新”;而</SPAN>delete <SPAN 
      lang=zh-cn>字面意思為“刪除”。二者在C++中內存管理中大致的功能,應是一個為“新建”,一個為“刪除”。</SPAN> 
      <P>  
      <H4><B><SPAN lang=zh-cn><A name=20.2.1>20.2.1</A> </SPAN><SPAN 
      lang=en-us>new </SPAN></B></H4>
      <P>  
      <P><SPAN lang=en-us>new </SPAN>是<SPAN lang=en-us> c++ 
      </SPAN>的一個關鍵字。被當作像<SPAN lang=en-us> +</SPAN>、-、* 、/ 
      一樣的操作符。它的操作結果是在申請到一段指定數據類型大小的內存。 
      <P>  
      <P>語法: 
      <P>  
      <P>指針變量<SPAN lang=en-us> = <B>new</B> </SPAN>數據類型<SPAN lang=en-us>;</SPAN> 

      <P>  
      <P><SPAN lang=en-us>new </SPAN>將做三件事: 
      <P>  
      <P>1、主動計算指定數據類型需要的內存空間大小; 
      <P>2、返回正確的指針類型; 
      <P>3、在分配內存的一,將按照語法規則,初始化所分配的內存。 
      <P>  
      <P>這是什么意思呢?看看例子吧: 
      <P>  
      <P><SPAN lang=en-us>int* p;</SPAN> 
      <P><SPAN lang=en-us>p = new int;</SPAN> 
      <P>  
      <P>和以往不一樣,p 這回不再“寄人籬下”,并不是指向某個已存在的變量,而是直接指向一段由<SPAN lang=en-us>new 
      </SPAN>分配而來的新內存空間。 
      <P>  
      <P>“<SPAN lang=en-us>p </SPAN>指向一段由<SPAN lang=en-us>new </SPAN>分配而來的新內存空間” 
      這句話等同于: 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区视频在线看| 中文字幕免费一区| 欧美最猛性xxxxx直播| 国产激情一区二区三区桃花岛亚洲 | 亚洲自拍与偷拍| 亚洲精品欧美专区| 伊人婷婷欧美激情| 亚洲一区二区三区在线看| 亚洲六月丁香色婷婷综合久久 | 国产精品国产a| 国产精品久久99| 一区二区三区鲁丝不卡| 亚洲与欧洲av电影| 日韩国产欧美在线播放| 日本大胆欧美人术艺术动态| 久久疯狂做爰流白浆xx| 国产乱人伦精品一区二区在线观看| 久久国产精品99精品国产| 国产不卡视频一区二区三区| 99久久国产综合精品麻豆| 欧美亚洲综合在线| 欧美一区二区二区| 国产无一区二区| 亚洲伦理在线免费看| 日本欧美肥老太交大片| 国产资源在线一区| www.爱久久.com| 欧美综合视频在线观看| 日韩一区二区免费在线观看| 国产日产欧产精品推荐色| 国产精品盗摄一区二区三区| 亚洲福利视频导航| 国产盗摄一区二区| 欧美性大战久久久久久久 | 欧美电视剧免费全集观看| 国产喷白浆一区二区三区| 亚洲一区视频在线观看视频| 久久 天天综合| 日本久久电影网| 久久只精品国产| 亚洲最大成人综合| 国产盗摄精品一区二区三区在线| aaa欧美大片| 欧美成人vr18sexvr| 一区二区在线观看免费| 国产麻豆精品视频| 欧美喷潮久久久xxxxx| 国产精品免费av| 免费人成精品欧美精品 | 亚洲午夜免费福利视频| 国产精品一色哟哟哟| 91官网在线观看| 国产女人aaa级久久久级| 免费观看成人av| 91九色最新地址| 国产精品久久网站| 国产一区二区三区在线观看精品 | 日韩电影网1区2区| 成人精品视频.| 久久精品一区蜜桃臀影院| 天天做天天摸天天爽国产一区 | 精品国产免费久久 | 懂色av一区二区在线播放| 91精品国产91久久久久久一区二区| 亚洲视频一区二区免费在线观看| 国产一区二区三区观看| 日韩亚洲欧美一区| 欧美aⅴ一区二区三区视频| 欧美男生操女生| 亚洲高清不卡在线| 欧美日韩国产影片| 日韩高清中文字幕一区| 欧美日韩国产小视频| 亚洲一区二区三区四区五区中文| 色诱视频网站一区| 一区二区视频在线| 欧美日韩久久久久久| 午夜视频一区在线观看| 欧美肥妇毛茸茸| 日韩在线a电影| 日韩欧美国产精品一区| 麻豆精品久久久| 26uuu亚洲| 成人在线综合网| 亚洲欧美日韩电影| 日本二三区不卡| 香蕉成人伊视频在线观看| 欧美性感一类影片在线播放| 日韩制服丝袜av| 日韩精品一区二区三区蜜臀| 国产综合久久久久久鬼色| 久久久www免费人成精品| 成人综合在线观看| 亚洲影视资源网| 制服丝袜亚洲精品中文字幕| 国产美女精品人人做人人爽| 国产女人水真多18毛片18精品视频| 9久草视频在线视频精品| 一区二区三区国产豹纹内裤在线 | 国内外成人在线| 久久久www成人免费无遮挡大片| 岛国一区二区在线观看| 一区二区免费在线| 91精品国产免费久久综合| 国产一区二区三区高清播放| 亚洲视频一二区| 日韩视频中午一区| kk眼镜猥琐国模调教系列一区二区| 亚洲激情校园春色| 欧美另类z0zxhd电影| 国产·精品毛片| 婷婷综合久久一区二区三区| 国产欧美精品一区| 日韩亚洲欧美一区二区三区| 福利电影一区二区三区| 视频一区中文字幕| 国产精品短视频| 精品国产露脸精彩对白| 99国产精品国产精品久久| 男女男精品视频网| 亚洲欧美aⅴ...| 欧美成人三级在线| 91视频一区二区| 国产a级毛片一区| 亚洲精品久久嫩草网站秘色| 久久亚洲一区二区三区明星换脸 | 日韩精品91亚洲二区在线观看| 日本一区免费视频| 日韩午夜激情免费电影| 91国产丝袜在线播放| 国产91精品精华液一区二区三区 | 天天综合色天天综合色h| 国产精品青草综合久久久久99| 91精品国产综合久久精品| 色香色香欲天天天影视综合网| 国产麻豆精品视频| 国产一区在线视频| 婷婷夜色潮精品综合在线| 中文字幕乱码日本亚洲一区二区| 欧美精三区欧美精三区 | 亚洲va中文字幕| 一区二区三区日韩欧美精品 | 欧美三级在线看| 色综合久久天天综合网| 97久久超碰国产精品电影| 国产精品白丝av| 国产成人午夜电影网| 国产美女娇喘av呻吟久久| 久久9热精品视频| 久久精品国产成人一区二区三区| 午夜精品福利一区二区三区av| 亚洲精选视频在线| 亚洲三级在线免费| 亚洲欧美日韩国产成人精品影院| 欧美韩日一区二区三区| 欧美经典三级视频一区二区三区| 久久久天堂av| 欧美韩国日本一区| 国产精品美女久久久久久久 | 精品欧美一区二区在线观看| 日韩欧美一二三四区| 精品日本一线二线三线不卡| 久久麻豆一区二区| 久久精品欧美日韩精品| 国产视频一区二区在线观看| 国产精品久久久久9999吃药| 亚洲同性gay激情无套| 亚洲综合视频在线| 蜜臀精品久久久久久蜜臀| 国产一区二区三区电影在线观看 | 成人免费电影视频| 91免费看片在线观看| 欧美喷水一区二区| 久久视频一区二区| 亚洲人成人一区二区在线观看 | 日本韩国精品在线| 欧美精品电影在线播放| 精品精品欲导航| 亚洲四区在线观看| 婷婷丁香久久五月婷婷| 国产揄拍国内精品对白| 色94色欧美sute亚洲线路二| 欧美一区二区视频观看视频| 国产色产综合色产在线视频| 亚洲国产一二三| 国产精品一区二区无线| 91丨porny丨户外露出| 欧美一级久久久久久久大片| 国产精品水嫩水嫩| 五月天婷婷综合| av资源站一区| 欧美不卡一区二区三区| 亚洲激情在线播放| 国产精品白丝av| 日韩欧美自拍偷拍| 一区二区在线免费观看| 国产一区二区导航在线播放| 欧美日韩精品综合在线| 国产精品久久久久9999吃药| 久久99国产精品免费网站|