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

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

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

?? C++的入門書籍。文字簡單有趣,通俗易懂。
?? HTM
?? 第 1 頁 / 共 5 頁
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://d2school.com/bcyl/bhcpp/newls/ls20.htm -->
<HTML><HEAD><TITLE>教學(xué)--第二十章 指針 二 為指針分配和釋放空間</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>P {
	MARGIN: 1px 2px; LINE-HEIGHT: 150%
}
.節(jié)標(biāo)題 {
	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.2180" 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://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.1">20.1 
      理解指針的兩種“改變”</A>
      <P><A href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.1.1">&nbsp; 
      20.1.1 改變指針的值</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.1.2">20.1.2 
      改變指針?biāo)傅淖兞康闹?lt;/A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.1.3">20.1.3 
      兩種改變?一種改變?</A>
      <P><A href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2">20.2 C++ 
      方式的內(nèi)存分配與釋放 new 和 delete</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2.1">20.2.1 new 
</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2.2">20.2.2 在new 
      時(shí)初始化內(nèi)存的值</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2.3">20.2.3 
      delete</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2.4">20.2.4 實(shí)驗(yàn): new 
      和 delete</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.2.5">20.2.5 new 和 
      delete 的關(guān)系</A>
      <P><A href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.3">20.3 new 
      [] 和 delete []</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.3.1">20.3.1 new[] / 
      delete[] 基本用法</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.3.2">20.3.2 new []/ 
      delete[] 示例</A>
      <P>&nbsp;<A href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.3.3"> 
      20.3.3 詳解指向連續(xù)空間的指針</A>
      <P><A href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.4">20.4 
      delete/delete[] 的兩個(gè)注意點(diǎn)</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.4.1">20.4.1 
      一個(gè)指針被刪除時(shí),應(yīng)指向最初的地址</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.4.2">20.4.2 
      已釋放的空間,不可重復(fù)釋放</A>
      <P><A href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.5">20.5 C 
      方式的內(nèi)存管理</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.5.1">20.5.1 分配內(nèi)存 
      malloc 函數(shù)</A>
      <P>&nbsp;<A href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.5.2"> 
      20.5.2 釋放內(nèi)存 free 函數(shù)</A>
      <P>&nbsp; <A 
      href="http://d2school.com/bcyl/bhcpp/newls/ls20.htm#20.5.3">20.5.3 
      重調(diào)空間的大小: realloc 函數(shù)</A>
      <P>&nbsp;<A href="http://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>對(duì)于非指針的簡單變量,能被程序改變的,只有這一種。而指針變量,似乎有兩種改變。
      <P> 
      <H4><A name=20.1.1>20.1.1</A> 改變指針的值</H4>
      <P>這一點(diǎn)和普通變量一致。但要特別注意,“改變指針的值”引起的結(jié)果是什么?其實(shí)就是“改變指針的指向”。
      <P>因?yàn)椋羔樀闹凳悄硞€(gè)變量的地址。假如指針P原來的值是A變量的地址,現(xiàn)在改為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>的值變?yōu)?lt;SPAN 
      lang=en-us>&amp;B</SPAN>,即改為指向變量B。
      <P> 
      <P>下面講:指針的第二種改變<SPAN lang=zh-cn>。</SPAN>通過指針,改變指針?biāo)傅淖兞康闹怠?      <P> 
      <H4><A name=20.1.2>20.1.2</A> 改變指針?biāo)傅淖兞康闹?lt;/H4>
      <P> 
      <P>復(fù)習(xí)前一章,我們知道通過 * (地址解析符),可以得到、或改變指針?biāo)傅淖兞康闹怠?      <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>所以,最后一行輸出的結(jié)果是 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>左值(等號(hào)左邊的值)是變量本身,右值則是一個(gè)地址。
      <P>而第二種改變,<SPAN lang=en-us>*P = </SPAN>200<SPAN lang=en-us>; 
      </SPAN>左值通過星號(hào)對(duì)P操作,來取得P指向的變量;右值是普通的值。
      <P> 
      <P>理解<SPAN lang=en-us>,</SPAN>區(qū)分對(duì)指針的兩種改變,才能學(xué)會(huì)如何使用指針。
      <P> 
      <P>請(qǐng)思考:上一章講的“指針的加減操作”,是對(duì)指針的哪一種改變?
      <P> 
      <P>最后需要說明,嚴(yán)格意義上,指針仍然只有一種改變,即改變指針本身的值。改變指針指向的變量,應(yīng)視為對(duì)另一變量的改變,只不過在代碼上,它通過指針來進(jìn)行,而不是直接對(duì)另一變量進(jìn)行操作。
      <P> 
      <P>為指針分配、釋放內(nèi)存空間
      <P> 
      <P>之前,我們給指針下的定義是“指針是一個(gè)變量,它存放的值是另一個(gè)變量的地址”。
      <P>比如:
      <P><SPAN lang=en-us>int a;</SPAN>
      <P><SPAN lang=en-us>int* p = &amp;a;</SPAN>
      <P> 
      <P>看,a 就是“另一個(gè)變量”,p指向了a。
      <P>我們知道,變量總是要占用一定的內(nèi)存空間,比如上面的a,就占用了4個(gè)字節(jié)(<SPAN 
      lang=en-us>sizeof(int))</SPAN>。這四個(gè)字節(jié)屬于誰?當(dāng)然屬于變量a,而不是p。
      <P> 
      <P>現(xiàn)在要講的是:也可以單獨(dú)為指針分配一段新的內(nèi)存空間。這一段內(nèi)容不屬于某個(gè)變量。
      <P> 
      <H3><SPAN lang=zh-cn><A name=20.2>20.2</A> </SPAN><SPAN lang=en-us>C++ 
      </SPAN>方式的內(nèi)存分配與釋放<SPAN lang=en-us> new </SPAN>和<SPAN lang=en-us> 
      delete</SPAN></H3>
      <P><SPAN lang=zh-cn>在內(nèi)存管理上,C++ 和 C 
      有著完全不同的兩套方案。當(dāng)然,C++的總是同時(shí)兼容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++中內(nèi)存管理中大致的功能,應(yīng)是一個(gè)為“新建”,一個(gè)為“刪除”。</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>的一個(gè)關(guān)鍵字。被當(dāng)作像<SPAN lang=en-us> +</SPAN>、-、* 、/ 
      一樣的操作符。它的操作結(jié)果是在申請(qǐng)到一段指定數(shù)據(jù)類型大小的內(nèi)存。
      <P> 
      <P>語法:
      <P> 
      <P>指針變量<SPAN lang=en-us> = <B>new</B> </SPAN>數(shù)據(jù)類型<SPAN lang=en-us>;</SPAN>
      <P> 
      <P><SPAN lang=en-us>new </SPAN>將做三件事:
      <P> 
      <P>1、主動(dòng)計(jì)算指定數(shù)據(jù)類型需要的內(nèi)存空間大小;
      <P>2、返回正確的指針類型;
      <P>3、在分配內(nèi)存的一,將按照語法規(guī)則,初始化所分配的內(nèi)存。
      <P> 
      <P>這是什么意思呢?看看例子吧:
      <P> 
      <P><SPAN lang=en-us>int* p;</SPAN>
      <P><SPAN lang=en-us>p = new int;</SPAN>
      <P> 
      <P>和以往不一樣,p 這回不再“寄人籬下”,并不是指向某個(gè)已存在的變量,而是直接指向一段由<SPAN lang=en-us>new 
      </SPAN>分配而來的新內(nèi)存空間。
      <P> 
      <P>“<SPAN lang=en-us>p </SPAN>指向一段由<SPAN lang=en-us>new </SPAN>分配而來的新內(nèi)存空間” 
      這句話等同于:
      <P>“<SPAN lang=en-us>new </SPAN>分配一段新的內(nèi)存空間,然后將該內(nèi)存空間的地址存入到變量p中。”
      <P>所以,最終p中仍然是存儲(chǔ)了一個(gè)變量的地址,只是,這是一個(gè)“無名”變量。
      <P> 
      <P>指向原有的某個(gè)變量,和指向一段新分配的內(nèi)存空間,有什么區(qū)別呢?

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费视频网站高清观看视频| 高潮精品一区videoshd| 国产亚洲视频系列| 欧美性大战久久久久久久蜜臀| 久久国产精品第一页| 伊人色综合久久天天| 精品福利在线导航| 欧美日韩一本到| 成人avav影音| 国内精品免费**视频| 亚洲成人av资源| 亚洲精品日日夜夜| 日本一区二区三区电影| 欧美变态凌虐bdsm| 欧美日韩亚洲国产综合| 97aⅴ精品视频一二三区| 韩国成人精品a∨在线观看| 亚洲高清在线精品| 伊人开心综合网| 中文字幕一区二区三区不卡在线| 精品国产区一区| 7777精品久久久大香线蕉| 91香蕉视频mp4| 风流少妇一区二区| 国产一区二区三区四区五区美女 | 日韩电影一区二区三区四区| 一色桃子久久精品亚洲| 久久精品免视看| 欧美精品一区二区高清在线观看 | 26uuu亚洲综合色| 欧美大片免费久久精品三p| 在线不卡欧美精品一区二区三区| 欧美综合色免费| 在线观看网站黄不卡| 91麻豆精品秘密| 91啪亚洲精品| 99精品久久只有精品| 95精品视频在线| 99久久99久久精品国产片果冻 | 国产精品一级片在线观看| 久久99国产精品久久99 | 国产jizzjizz一区二区| 国产福利一区二区| 成人av动漫网站| 91亚洲国产成人精品一区二区三| 97久久久精品综合88久久| 972aa.com艺术欧美| 欧美在线观看你懂的| 欧美色成人综合| 337p亚洲精品色噜噜| 91精品国产综合久久久久久久久久| 欧美猛男男办公室激情| 欧美巨大另类极品videosbest | 亚洲国产毛片aaaaa无费看| 亚洲午夜私人影院| 蜜臀av性久久久久av蜜臀妖精| 久久99国内精品| 成人av网站在线观看| 欧美最猛性xxxxx直播| 宅男在线国产精品| 久久亚区不卡日本| 亚洲欧美自拍偷拍色图| 亚洲国产日韩a在线播放| 美女视频黄免费的久久| 国产.欧美.日韩| 在线观看91视频| 精品美女一区二区三区| 国产精品国产三级国产三级人妇| 一区二区三区在线高清| 免费日韩伦理电影| 国产91对白在线观看九色| 色综合久久久久综合99| 91精品国产综合久久香蕉麻豆| 久久人人97超碰com| 国产精品福利一区二区| 亚洲与欧洲av电影| 久久99久久精品欧美| 91在线高清观看| 日韩西西人体444www| 国产精品人妖ts系列视频| 亚洲成av人片一区二区梦乃| 国产资源在线一区| 在线一区二区三区| 欧美成人高清电影在线| 亚洲乱码国产乱码精品精小说 | 中文字幕视频一区| 日本v片在线高清不卡在线观看| 国产精品18久久久久| 欧美色图激情小说| 欧美国产日产图区| 日韩专区中文字幕一区二区| 成人午夜又粗又硬又大| 日韩午夜三级在线| 亚洲主播在线播放| 国产麻豆视频一区二区| 欧美日韩你懂的| 国产欧美日韩三级| 久久精品久久精品| 欧美性感一类影片在线播放| 中文字幕成人在线观看| 美女视频黄频大全不卡视频在线播放| 99久久99久久精品免费观看 | 成人亚洲一区二区一| 制服丝袜中文字幕一区| 一区二区三区中文字幕| 丁香另类激情小说| 久久欧美一区二区| 奇米777欧美一区二区| 欧美色倩网站大全免费| 自拍偷拍欧美精品| 高清成人免费视频| 久久精品一区二区三区av| 另类小说色综合网站| 欧美裸体一区二区三区| 一区二区三区在线视频观看58| 国产91精品露脸国语对白| 精品动漫一区二区三区在线观看| 天天色天天爱天天射综合| 91久久国产最好的精华液| 国产精品久久久久四虎| 成人网在线播放| 国产精品美女一区二区在线观看| 国产一区二区视频在线| 久久综合国产精品| 国内不卡的二区三区中文字幕 | 欧美猛男男办公室激情| 亚洲国产一区二区a毛片| 色综合久久久久久久久久久| 中文字幕一区二区三中文字幕| 国产成a人亚洲精| 欧美国产在线观看| 成人一级黄色片| 国产精品人成在线观看免费| 粗大黑人巨茎大战欧美成人| 国产午夜精品久久久久久免费视| 国产真实乱子伦精品视频| 欧美mv和日韩mv国产网站| 久久精品国产99国产| 日韩精品中文字幕在线不卡尤物| 蜜臀av在线播放一区二区三区| 4438亚洲最大| 久久99精品国产91久久来源| 久久久久久久久久美女| 国产福利精品一区二区| 中文字幕在线免费不卡| 91麻豆高清视频| 亚洲午夜激情av| 91精品国产入口在线| 久久爱www久久做| 久久久久久久综合日本| 成人三级伦理片| 一区二区三区精品视频在线| 欧美视频一区二区三区四区| 丝袜亚洲另类欧美| 精品国产人成亚洲区| 成人在线综合网站| 亚洲黄色小说网站| 欧美一区二区三区日韩视频| 极品少妇xxxx偷拍精品少妇| 国产农村妇女毛片精品久久麻豆| 91社区在线播放| 秋霞电影网一区二区| 久久精品欧美日韩精品| 色哟哟日韩精品| 免费不卡在线观看| 国产女人水真多18毛片18精品视频| 一本久久精品一区二区| 日韩高清不卡一区二区| 国产欧美中文在线| 欧美在线视频全部完| 久久国产精品区| 最新国产成人在线观看| 91精品在线一区二区| 国产69精品久久久久777| 亚洲福利视频一区| 国产午夜精品一区二区三区视频| 在线免费一区三区| 精品一区二区三区欧美| ㊣最新国产の精品bt伙计久久| 在线播放中文一区| av在线一区二区三区| 日韩高清不卡一区二区三区| 国产精品成人免费在线| 91精品国产综合久久香蕉麻豆| 成人午夜私人影院| 男女性色大片免费观看一区二区 | 欧美在线短视频| 国产一区二区福利| 亚洲一区二区三区在线看| 久久精品一区二区三区四区| 91成人免费在线视频| 国产成人在线电影| 偷偷要91色婷婷| 自拍偷在线精品自拍偷无码专区| 日韩免费观看高清完整版 | 久久久久九九视频| 欧美另类一区二区三区| av不卡在线观看| 国产在线一区二区综合免费视频| 亚洲aⅴ怡春院|