C語(yǔ)言程序設(shè)計(jì)_第6章_指針

C語(yǔ)言程序設(shè)計(jì)_第6章_指針

ID:43926897

大?。?.79 MB

頁(yè)數(shù):87頁(yè)

時(shí)間:2019-10-16

C語(yǔ)言程序設(shè)計(jì)_第6章_指針_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)_第6章_指針_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)_第6章_指針_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)_第6章_指針_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)_第6章_指針_第5頁(yè)
資源描述:

《C語(yǔ)言程序設(shè)計(jì)_第6章_指針》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、第6章指針C語(yǔ)言程序設(shè)計(jì)北京科技大學(xué)計(jì)算機(jī)系2021/7/246.1概述6.2指針和指針變量6.3指針與數(shù)組6.4指針和函數(shù)6.5動(dòng)態(tài)存儲(chǔ)分配第6章指針2021/7/246.1概述為什么要引入指針的概念?指針可以有效地表示復(fù)雜數(shù)據(jù)結(jié)構(gòu),如隊(duì)列、棧、鏈表等。指針能象匯編語(yǔ)言一樣處理內(nèi)存地址,為動(dòng)態(tài)內(nèi)存分配提供支持。指針可實(shí)現(xiàn)對(duì)數(shù)組和字符串的方便使用,提高某些子程序的效率。6.1概述關(guān)于指針的原則學(xué)習(xí)原則一定要學(xué)會(huì)其實(shí)通常的應(yīng)用很簡(jiǎn)單使用原則永遠(yuǎn)要清楚每個(gè)指針指向了哪里永遠(yuǎn)要清楚指針的指向位置是什么2021/7/242021/7/24main(){inta=5;intb;floatx=3.5

2、;…}變量的兩個(gè)物理意義1001100210031004…1015101610171018…2002200320042005aBx變量的內(nèi)容變量的地址6.2指針和指針變量5×35.0變量的內(nèi)容變量的內(nèi)容變量的地址變量的地址6.2.1基本概念變量的地址和變量的內(nèi)容變量的地址變量所分配存儲(chǔ)空間的首地址變量的內(nèi)容變量在所分配的存儲(chǔ)空間中存放的數(shù)據(jù)2021/7/242021/7/24main(){inta,b;floatx=35;a=5;b=a+3;…}1001100210031004…1015101610171018ab5直接將整數(shù)5存入變量a直接將變量a的值取出,相加后存入變量b利用變量名存

3、取數(shù)據(jù)的方式稱為“直接存取”方式。直接存取和間接存取82021/7/24C語(yǔ)言還提供了對(duì)內(nèi)存單元的“間接存取”方式p1001100210031004…1015101610171018…2004200520062007ab51001p1001a3main(){inta=5,b=3,*p;p=&a;*p=a+b;…}變量的地址稱為變量的指針存放地址的變量稱為指針變量p指向c,c為p所指向的目標(biāo)變量。直接存取和間接存取8指針的類型和指針?biāo)赶虻念愋蚷nta=5,b;floatx;int*pi;float*pf;pi指針的類型:int*pf指針的類型:float*pi所指向的類型:intpf所指

4、向的類型:float2021/7/242021/7/24voidmain(){floatx,*p1=NULL;float*p2=&x;inty,*p3=&y;charname[20],*cp=name;…}2000…2004…2008…2012…2016…2020…2040xp1p2yp3namecp20006.2指針和指針變量6.2.2指針變量的定義NULLvoidmain(){floatx,*p1,*p2;inty,*p3;charname[20];char*cp;…}指針變量定義的形式指針變量初始化數(shù)據(jù)類型*指針變量名201220206.2指針和指針變量說(shuō)明:當(dāng)把一個(gè)變量的地址作為

5、初值賦給指針時(shí),該變量必須先給以定義,且該變量的數(shù)據(jù)類型必須與指針的數(shù)據(jù)類型一致也可把一個(gè)已初始化的指針值作為初值賦予另一指針也可通過(guò)初始化定義某種類型的空指針2021/7/246.2.2指針變量的定義2021/7/246.2指針和指針變量取地址運(yùn)算&&變量名或數(shù)組元素名inti,*p; p=&i;int*p,a[10]; p=a;int*p,a[10]; p=&a[0];int*p,a[10]; p=&a[5];間接存取運(yùn)算**指針變量或目標(biāo)變量的地址inti,*p; p=&i; *p=0;int*p,a[10]; p=a; *p=0;int*p,a[10]; p=&a[0]; *p=

6、0;6.2.3指針的基本運(yùn)算pa——指針變量*pa——指針pa的目標(biāo)變量&pa——指針變量pa占用存儲(chǔ)區(qū)域地址2021/7/242000200120022003200420052006200720082009apxq20046.2指針和指針變量6.2.3指針的基本運(yùn)算2000*p=&a;×main(){inta,*p;floatx,*q;p=&a;q=&x;…}賦值運(yùn)算56.2指針和指針變量賦值運(yùn)算把一個(gè)變量的地址賦給一個(gè)同類型的指針,如:inta,*pa;pa=&a;/*使pa指向變量a*/把一個(gè)指針的值賦給另一同類型的指針,如:charc,*s1=&c,*s2;s2=s1;/*結(jié)果s

7、1和s2指向同一變量c*/2021/7/246.2.3指針的基本運(yùn)算6.2指針和指針變量賦值運(yùn)算將地址常量如數(shù)組名賦給同類型的指針,如:char*str,ch[80];str=ch;/*使str得到字符數(shù)組ch的首地址,即str指向數(shù)組ch*/同類型指針?biāo)阈g(shù)運(yùn)算的結(jié)果,如果還是地址量的話,可以賦值給同類型的指針。例如:int*p1,*p2,a[20];p1=a;p2=p1+5;p1=p2-3;2021/7/246.2.3指針的基本運(yùn)

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。