C語言程序設計_第6章_指針

C語言程序設計_第6章_指針

ID:43926897

大小:2.79 MB

頁數(shù):87頁

時間:2019-10-16

C語言程序設計_第6章_指針_第1頁
C語言程序設計_第6章_指針_第2頁
C語言程序設計_第6章_指針_第3頁
C語言程序設計_第6章_指針_第4頁
C語言程序設計_第6章_指針_第5頁
資源描述:

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

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

2、;…}變量的兩個物理意義1001100210031004…1015101610171018…2002200320042005aBx變量的內(nèi)容變量的地址6.2指針和指針變量5×35.0變量的內(nèi)容變量的內(nèi)容變量的地址變量的地址6.2.1基本概念變量的地址和變量的內(nèi)容變量的地址變量所分配存儲空間的首地址變量的內(nèi)容變量在所分配的存儲空間中存放的數(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語言還提供了對內(nèi)存單元的“間接存取”方式p1001100210031004…1015101610171018…2004200520062007ab51001p1001a3main(){inta=5,b=3,*p;p=&a;*p=a+b;…}變量的地址稱為變量的指針存放地址的變量稱為指針變量p指向c,c為p所指向的目標變量。直接存取和間接存取8指針的類型和指針所指向的類型inta=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指針和指針變量說明:當把一個變量的地址作為

5、初值賦給指針時,該變量必須先給以定義,且該變量的數(shù)據(jù)類型必須與指針的數(shù)據(jù)類型一致也可把一個已初始化的指針值作為初值賦予另一指針也可通過初始化定義某種類型的空指針2021/7/246.2.2指針變量的定義2021/7/246.2指針和指針變量取地址運算&&變量名或數(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];間接存取運算**指針變量或目標變量的地址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指針的基本運算pa——指針變量*pa——指針pa的目標變量&pa——指針變量pa占用存儲區(qū)域地址2021/7/242000200120022003200420052006200720082009apxq20046.2指針和指針變量6.2.3指針的基本運算2000*p=&a;×main(){inta,*p;floatx,*q;p=&a;q=&x;…}賦值運算56.2指針和指針變量賦值運算把一個變量的地址賦給一個同類型的指針,如:inta,*pa;pa=&a;/*使pa指向變量a*/把一個指針的值賦給另一同類型的指針,如:charc,*s1=&c,*s2;s2=s1;/*結(jié)果s

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

當前文檔最多預覽五頁,下載文檔查看全文

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

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