




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2某班有某班有n n名學(xué)生,記錄所有學(xué)生的成績(jī);名學(xué)生,記錄所有學(xué)生的成績(jī); int n;int n; scanf(%d,&n); scanf(%d,&n); int sn; int sn; 可以用指針實(shí)現(xiàn)數(shù)組大小的動(dòng)態(tài)調(diào)整??梢杂弥羔槍?shí)現(xiàn)數(shù)組大小的動(dòng)態(tài)調(diào)整。 int int * *p;p; p = (int p = (int * *)malloc(n)malloc(n* *sizeof(int); sizeof(int); 解決問題:某班有解決問題:某班有100100名學(xué)生,記錄下所有學(xué)名學(xué)生,記錄下所有學(xué)生的成績(jī)生的成績(jī); ; int s100; 指指 針針 5.1 指針的
2、概念指針的概念 地址地址 指針指針 間接訪問間接訪問變量與地址程序中程序中: short i; float k; 內(nèi)存中每個(gè)字節(jié)有一個(gè)編號(hào)內(nèi)存中每個(gè)字節(jié)有一個(gè)編號(hào)-地址地址.2000200120022005內(nèi)存內(nèi)存02003ik 編譯或函數(shù)調(diào)用時(shí)為其分配內(nèi)存單元編譯或函數(shù)調(diào)用時(shí)為其分配內(nèi)存單元變量變量是對(duì)程序中數(shù)據(jù)是對(duì)程序中數(shù)據(jù)存儲(chǔ)空間的抽象存儲(chǔ)空間的抽象.2000200420062005短整型變量短整型變量i10變量變量i_pointer200120022003 指針與指針變量指針與指針變量 指針:一個(gè)變量的地址指針:一個(gè)變量的地址 指針變量:專門存放變量地址的變量指針變量:專門存放變量地址
3、的變量2000指針指針指針變量指針變量 變量的變量的內(nèi)容內(nèi)容 變量的變量的地址地址指針變量指針變量變量變量變量地址變量地址(指針指針)變量值變量值指向指向地址存入地址存入指針變量指針變量指針變量定義格式:指針變量定義格式: 數(shù)據(jù)類型數(shù)據(jù)類型 * 變量名變量名;int *p1;char *pc,c;* 指明說明的變指明說明的變量為指針變量量為指針變量表明指針變量所指向表明指針變量所指向的變量的數(shù)據(jù)類型的變量的數(shù)據(jù)類型定義了指向整型變量的指針變量定義了指向整型變量的指針變量p1定義了字符型變量定義了字符型變量c,及指向字,及指向字符型變量的指針變量符型變量的指針變量pci_pointer = &a
4、mp;i = &(*i_pointer)i = *i_pointer = *(&i)i_pointer = &i = &(*i_pointer)i = *i_pointer = *(&i) &與與*運(yùn)算符運(yùn)算符 含義:含義: &(取地址運(yùn)算符取地址運(yùn)算符) *(指針運(yùn)算符指針運(yùn)算符)含義含義: 取指針變量所指向變量的內(nèi)容取指針變量所指向變量的內(nèi)容單目運(yùn)算符單目運(yùn)算符優(yōu)先級(jí)優(yōu)先級(jí): 2結(jié)合性結(jié)合性:自右向左自右向左 兩者關(guān)系:互為兩者關(guān)系:互為逆運(yùn)算逆運(yùn)算 理解理解.2000200420062005短整型變量短整型變量i10變量變量i_po
5、inter2001200220032000指針變量指針變量i_pointer-指針變量,它的內(nèi)容是地址量指針變量,它的內(nèi)容是地址量*i_pointer-指針的指針的目標(biāo)變量目標(biāo)變量,它的內(nèi)容是數(shù)據(jù),它的內(nèi)容是數(shù)據(jù)&i_pointer-指針變量占用內(nèi)存的地址指針變量占用內(nèi)存的地址200010i_pointer*i_pointer&i_pointeri含義含義: 取變量的地址取變量的地址單目運(yùn)算符單目運(yùn)算符優(yōu)先級(jí)優(yōu)先級(jí): 2結(jié)合性結(jié)合性:自右向左自右向左 直接訪問與間接訪問直接訪問與間接訪問 直接訪問:直接訪問:按變量地址存取變量值按變量地址存取變量值 間接訪問:間接訪問:通過存放
6、變量地址的變量去訪問變量通過存放變量地址的變量去訪問變量例例 i=3; -直接訪問直接訪問.2000200420062005短整型變量短整型變量i10變量變量i_pointer20012002200320003例例 *i_pointer=20; -間接訪問間接訪問20例例 k=i; -直接訪問直接訪問 k=*i_pointer; -間接訪問間接訪問例例 k=i; -直接訪問直接訪問 k=*i_pointer; .2000200420062005短整型變量短整型變量i10變量變量i_pointer2001200220032000短整型變量短整型變量k10.整型變量整型變量10指針變量指針變量?jī)H僅
7、是定義了可以指向僅僅是定義了可以指向型數(shù)據(jù)型數(shù)據(jù)的指針變量,但并未指向的指針變量,但并未指向a.整型變量整型變量10指針變量指針變量定義指針變量定義指針變量pa,pb將將a的地址送的地址送pa將將b的地址送的地址送pb輸出所指向的變量的內(nèi)容輸出所指向的變量的內(nèi)容運(yùn)行結(jié)果為運(yùn)行結(jié)果為100,10100,10例例 :#include main()int i,*ip; ip=&i;i=10; printf( %d,%dn ,i,*ip); *ip=100; printf( %d,%dn ,i,*ip);運(yùn)行結(jié)果:運(yùn)行結(jié)果:10,10100,100將指針變量初始化為空指針,意為該變量不指向任一
8、內(nèi)將指針變量初始化為空指針,意為該變量不指向任一內(nèi)存單元存單元將變量的地址賦值給指針將變量的地址賦值給指針同類型的指針變量之間互相賦值同類型的指針變量之間互相賦值int *ptr=NULLint a;int *p=&a;int a,*pa=&a,*pb; pb=pa;把數(shù)組的把數(shù)組的首地址首地址賦予指向數(shù)組的指針變量賦予指向數(shù)組的指針變量int a5,*pa; pa=a; (或或pa=&a0;)如:如: p+np+n、p-np-n、p+p+、p-p-、+p+p、-p-p其中:其中:p p為指針變量,為指針變量,n n為整數(shù)為整數(shù)+ + p p向地址編號(hào)增大的方向移動(dòng)向地
9、址編號(hào)增大的方向移動(dòng)- - p p向地址編號(hào)減小的方向移動(dòng)向地址編號(hào)減小的方向移動(dòng)注意:注意:在對(duì)指針進(jìn)行加、減運(yùn)算中,數(shù)字在對(duì)指針進(jìn)行加、減運(yùn)算中,數(shù)字1 1不再代表不再代表 十進(jìn)制中的整數(shù)十進(jìn)制中的整數(shù)1 1,事實(shí)上,事實(shí)上 p+1p+1p +1*sizeof(基類型)基類型)p + n 的值 = ADDR + n * sizeof(ptype)p - n 的值 = ADDR - n * sizeof(ptype)pp+12的高位字節(jié)的高位字節(jié)2的低位字節(jié)的低位字節(jié)2的高位字節(jié)的高位字節(jié)2的低位字節(jié)的低位字節(jié)20002002200420062008a0a1a2a3a4short a5= 2,4, 23,6,78 ;short *p;p=a;pp+1要求:必須是指向要求:必須是指向同一數(shù)組同一數(shù)組的兩個(gè)指針變量之間。的兩個(gè)指針變量之間。相減:求出兩者之間的數(shù)據(jù)個(gè)數(shù)。(注:相減:求出兩者之間的數(shù)據(jù)個(gè)數(shù)。(注:不可相加不可相加)關(guān)系運(yùn)算:表示兩者所指數(shù)組元素間的關(guān)系。關(guān)系運(yùn)算:表示兩者所指數(shù)組元素間的關(guān)系。 可進(jìn)行的運(yùn)算:可進(jìn)行的運(yùn)算:=、=、p2 p1地址在地址在p2后后 p1p2 p1地址在地址在p2前前錯(cuò)!錯(cuò)!對(duì)!對(duì)!int i,*p;p=&i;int *p;float
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年一建《機(jī)電工程管理與實(shí)務(wù)》考試高頻考點(diǎn)知識(shí)點(diǎn)庫(kù)專項(xiàng)訓(xùn)練試題
- 2025年護(hù)士執(zhí)業(yè)資格考試題庫(kù)(內(nèi)科護(hù)理學(xué)專項(xiàng))-護(hù)理心理學(xué)臨床護(hù)理倫理試題
- 2025年書法教師職業(yè)能力測(cè)試卷:書法技巧與教育理念篇
- 2025年安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)安全法規(guī)解讀與應(yīng)用考試題庫(kù)
- 化工反應(yīng)釜溫度壓力控制
- 電梯運(yùn)輸安全責(zé)任合同
- 二零二五年度北京市物流行業(yè)臨時(shí)工勞動(dòng)合同規(guī)范
- 產(chǎn)業(yè)園裝修項(xiàng)目終止協(xié)議
- 法律顧問年終工作總結(jié)
- 春節(jié)期間社區(qū)安全生產(chǎn)工作計(jì)劃
- 2025教科版六年級(jí)科學(xué)下冊(cè)全冊(cè)教案【含反思】
- 2025年常州機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)含答案
- 南充經(jīng)濟(jì)開發(fā)區(qū)投資集團(tuán)有限公司2024年招聘筆試參考題庫(kù)附帶答案詳解
- 2025年錫林郭勒職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)標(biāo)準(zhǔn)卷
- 2025年湖南機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)1套
- 2024年湖北省武漢市中考數(shù)學(xué)試題(解析版)
- 2025年河南測(cè)繪職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2023年高考真題-歷史(遼寧卷) 含解析
- 電子線產(chǎn)品成本分析表
- 護(hù)士長(zhǎng)管理培訓(xùn)知識(shí)
- 高中生物知識(shí)點(diǎn)匯總必修選修
評(píng)論
0/150
提交評(píng)論