![面向?qū)ο蟪绦蛟O(shè)計 第9講動態(tài)內(nèi)存申請_第1頁](http://file4.renrendoc.com/view/3d640049fb6431efc6846a703657e81c/3d640049fb6431efc6846a703657e81c1.gif)
![面向?qū)ο蟪绦蛟O(shè)計 第9講動態(tài)內(nèi)存申請_第2頁](http://file4.renrendoc.com/view/3d640049fb6431efc6846a703657e81c/3d640049fb6431efc6846a703657e81c2.gif)
![面向?qū)ο蟪绦蛟O(shè)計 第9講動態(tài)內(nèi)存申請_第3頁](http://file4.renrendoc.com/view/3d640049fb6431efc6846a703657e81c/3d640049fb6431efc6846a703657e81c3.gif)
![面向?qū)ο蟪绦蛟O(shè)計 第9講動態(tài)內(nèi)存申請_第4頁](http://file4.renrendoc.com/view/3d640049fb6431efc6846a703657e81c/3d640049fb6431efc6846a703657e81c4.gif)
![面向?qū)ο蟪绦蛟O(shè)計 第9講動態(tài)內(nèi)存申請_第5頁](http://file4.renrendoc.com/view/3d640049fb6431efc6846a703657e81c/3d640049fb6431efc6846a703657e81c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、8.6 動態(tài)內(nèi)存申請程序設(shè)計基礎(chǔ)18.6 動態(tài)內(nèi)存申請一、new與delete1、內(nèi)存空間申請(1) new操作符:表示從堆內(nèi)存中申請一塊空間。(2)返回值: 申請成功:返回所申請到的空間的首地址。 申請失?。悍祷乜罩羔?NULL)程序代碼區(qū)全局數(shù)據(jù)區(qū)堆棧2022/7/222一、new與delete(3) new的三種格式: new 數(shù)據(jù)類型 new 數(shù)據(jù)類型(初始化值) new 數(shù)據(jù)類型整型表達式例:intip1=new int; intip2=new int(3);int n;cinn; intstr=new intn;沒有變量名,只能通過指針操作。ip1 ip2 stri2022/7/2
2、232、內(nèi)存空間釋放(1)delete操作符:表示將從堆內(nèi)存中 申請的一塊空間返還給堆。(2) delete的兩種格式: delete 指針名 delete 指針名2022/7/224(3)幾點說明:P188new與delete需要配套使用:new 數(shù)據(jù)類型 new 數(shù)據(jù)類型(初始化值)new 數(shù)據(jù)類型常量表達式 如果在程序中用new申請了空間,就應該在結(jié)束程序前釋放所有申請的空間。delete 指針名delete 指針名P189自測題8.62022/7/225復習數(shù)組的特點:x0 x1x2x3x4x52000H2004H2008H200cH2010H2014H地址 值 數(shù)組元素1234567
3、03456700123456702022/7/2262用指針處理鏈表 鏈表中每個元素稱為一個結(jié)點。 構(gòu)成鏈表的結(jié)點必須是結(jié)構(gòu)體類型數(shù)據(jù)。1. 鏈表的基本結(jié)構(gòu) head 1000 1032 3284 1296 1382 2008圖 1 動態(tài)單向鏈表示意圖C3284H1296A1382I2008NNULL10001032 相鄰結(jié)點的地址不一定是連續(xù)的,依靠指針將 它們連接起來。struct nodechar c; node *next; ;2022/7/227101010121014101610181020102210241026李 NULL孫 1010趙 1024錢 1014例:(趙,錢,孫,李
4、)的鏈式存儲結(jié)構(gòu)如下:10181010101410241018趙 1024錢 1014孫 1010李 NULL2022/7/228表頭指針表頭指針(head) 結(jié)點用結(jié)構(gòu)體類型來描述結(jié)點由數(shù)據(jù)成員和指針成員組成。數(shù)據(jù)成員描述每一個結(jié)點的信息;指針成員用來指向鏈表中的下一個結(jié)點。head 1000 1032 3284 1296 1382 2008圖 1 動態(tài)單向鏈表示意圖C3284H1296A1382I2008NNULL100010322022/7/229鏈表的建立鏈表的建立過程就是一個個創(chuàng)建鏈表結(jié)點并將它們連接在一起的過程。struct StuNodechar name20;float sco
5、re;StuNodenext;2022/7/2210鏈表的建立創(chuàng)建結(jié)點StuNodep;p=new StuNode;”wangtao ” 67strcpy(p-name, ”wangtao ”);p-score=67;p-next=NULL;struct StuNode char name20; float score; StuNodenext;p2022/7/2211鏈表的建立初始情況:線性表為空表時,頭指針為空StuNode *head=NULL;*tail=NULL;StuNodep=new StuNode;strcpy(p-name, ”wangtao ”);p-score=67;p-
6、next=NULL;head=p;tail=p;”wangtao ” 67headtail2022/7/2212鏈表的建立示意圖如下: ”wusan ” 89 ”Lishi ” 88 ”wangtao ” 67head tailp插入前tail-next=p;tail=p; ”wusan ” 89 ”Lishi ” 88 ”wangtao ” 67head插入后tailptail2022/7/2213 鏈表為空 鏈表非空StuNode *head=NULL;StuNode *tail=NULL;StuNodep;p=new StuNode;strcpy(p-name, ”wt ”);p-sco
7、re=67;p-next=NULL;head=p;tail=p;p=new StuNode;strcpy(p-name, ”ee”);p-score=78;p-next=NULL;tail-next=p;tail=p;if(tail=NULL) head=p;else tail-next=p;tail=p;char n 20;float s;cinns;p=new StuNode;strcpy(p-name,n);p-score=s;p-next=NULL;2022/7/2214輸出建立好的鏈表StuNode *pNode=head;coutname“ ”score;pNode=pNode-n
8、ext; ”wusan ” 89 ”Lishi ” 88 ”wangtao ” 67head while (pNode!=NULL)2022/7/2215鏈表結(jié)點的刪除如果被刪除結(jié)點是鏈表的第一個結(jié)點,那么刪除這個結(jié)點后,鏈表的頭指針需要發(fā)生變化;如果被刪除結(jié)點不是鏈表的第一個結(jié)點,那么刪除這個結(jié)點后,將導致這個結(jié)點的前一個結(jié)點的指針發(fā)生變化. ”wusan ” 89 ”Lishi ” 88 ”wangtao ” 67head2022/7/2216鏈表結(jié)點的刪除第一種情況示意圖:12nheadpDel12npDelhead刪除前刪除后head=head-next;delete pDel;202
9、2/7/2217鏈表結(jié)點的刪除第二種情況示意圖:1i-1ini+1headpDel1i-1ii+1nheadpDel刪除前刪除后pre-next= pDel-next;delete pDel;prepre2022/7/2218查找到要刪除元素的前一個元素pre=head;while( pre-next!=pDel) pre=pre-next;1i-1ini+1headpDel刪除前pre2022/7/2219鏈表結(jié)點的刪除將兩種情況結(jié)合,則從一個以head為表頭指針的鏈表中刪除一個結(jié)點的程序如下:if(head=pDel) head=head-next;else pre=head; while
10、( pre-next!=pDel) pre=pre-next; pre-next=pDel-next;delete pDel;2022/7/2220作業(yè):寫四個子函數(shù),分別完成如下功能:creatlist(StuNode * head)建立鏈表;coutlist(StuNode * head)顯示已經(jīng)建立好的鏈表;Insertlist(StuNode * head,int i, StuNode * p)在第i個結(jié)點后插入一個新的結(jié)點;deletelist(StuNode * head,int i)刪除第i個結(jié)點。2022/7/22218.7 引用的概念1、引用:別名。2、引用的說明: 如:in
11、t val; int &rval=val;/ rval是對val的引用3、引用說明時必須初始化引用一旦被初始化后,就不能改變。4、對引用的操作與對被引用對象所做的操作,效果完全一樣2022/7/2222引用例:#includevoid main( )int val; int &rval=val; cout ” &val=” &valendl; cout ” &rval=” &rvalendl; val=34; cout ” val=” val ” rval=” rvalendl; rval=12; cout ” val=” val ” rval=” rvalendl; 程序的輸出結(jié)果為&val
12、=0X0065FDF4&rval=0X0065FDF4val=34 rval=34val=12 rval=122022/7/22238.9 引用的應用#includevoid s x,int y)int temp=x; x=y; y=temp; void main( ) int a=10,b=20; cout”a= ” a ”b= ”bendl; s); cout”a= ” a ” b= ”bendl;s &x,int &y)函數(shù)需要返回多個值2022/7/2224二、引用的數(shù)據(jù)類型1、能夠被引用的數(shù)據(jù)類型P203(1)對簡單數(shù)據(jù)類型變量或常量的引用(2)對結(jié)構(gòu)類型變量或常量的引用(3)對指針變量或常量的引用2022/7/22252、不能被引用的情況(1)不能對void引用(2)不能對數(shù)組名引用(3)不能定義指向引用的指針注: int& 和 int& 的區(qū)別:int&表示對int型指針的引用int& 表示指向int型引用的指針2022/7/2226三、const引用1、在引用說明前加const。2、不能改變const引用的值,但是可以改變它所引用的對象的值。如:int i; const int& ri=i; ri=45;() i=45; ()3、對一個常量進行引用時,必須將這個引用定義為const引用如:const int ci=45; int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能城市管理與服務(wù)作業(yè)指導書
- IT領(lǐng)域云服務(wù)平臺架構(gòu)規(guī)劃與建設(shè)方案
- 軟件測試技術(shù)及實施流程作業(yè)指導書
- 綠色農(nóng)業(yè)發(fā)展作業(yè)指導書
- 工程居間合同
- 能源化工行業(yè)項目管理作業(yè)指導書
- 2025年??谪涍\從業(yè)資格證年考試題及答案
- 2025年酒泉普通貨運從業(yè)資格證考試
- 2024-2025學年高中地理第四單元從人地關(guān)系看資源與環(huán)境單元活動4遙感技術(shù)及其應用練習含解析魯教版必修1
- 景觀設(shè)計師年終總結(jié)
- 小學班會-交通安全伴我行(共25張課件)
- 消防安全一懂三會四能
- 起重吊裝工程安全監(jiān)理細則模版(3篇)
- 《VAVE價值工程》課件
- 四川政采評審專家入庫考試基礎(chǔ)題復習試題及答案(一)
- 分享二手房中介公司的薪酬獎勵制度
- 安徽省2022年中考道德與法治真題試卷(含答案)
- GB 4793-2024測量、控制和實驗室用電氣設(shè)備安全技術(shù)規(guī)范
- 廣電雙向網(wǎng)改造技術(shù)建議書
- 項目人員管理方案
- 重大火災隱患判定方法
評論
0/150
提交評論