![《C語(yǔ)言程序設(shè)計(jì)》 課件 7.3.1 指針變量與數(shù)組_第1頁(yè)](http://file4.renrendoc.com/view14/M07/04/04/wKhkGWYhLSmAacgyAAC2gs-EWD0181.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》 課件 7.3.1 指針變量與數(shù)組_第2頁(yè)](http://file4.renrendoc.com/view14/M07/04/04/wKhkGWYhLSmAacgyAAC2gs-EWD01812.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》 課件 7.3.1 指針變量與數(shù)組_第3頁(yè)](http://file4.renrendoc.com/view14/M07/04/04/wKhkGWYhLSmAacgyAAC2gs-EWD01813.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》 課件 7.3.1 指針變量與數(shù)組_第4頁(yè)](http://file4.renrendoc.com/view14/M07/04/04/wKhkGWYhLSmAacgyAAC2gs-EWD01814.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》 課件 7.3.1 指針變量與數(shù)組_第5頁(yè)](http://file4.renrendoc.com/view14/M07/04/04/wKhkGWYhLSmAacgyAAC2gs-EWD01815.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
指針變量與數(shù)組指針變量與數(shù)組指針與一維數(shù)組指針的運(yùn)算字符指針與字符串?dāng)?shù)組中的每個(gè)元素都可以通過(guò)下標(biāo)唯一確定,即通過(guò)下標(biāo)可以訪問(wèn)(操作)數(shù)組中的元素。在C語(yǔ)言中,凡是可以通過(guò)數(shù)組下標(biāo)方式完成的訪問(wèn)(操作)均可以通過(guò)指針?lè)绞綄?shí)現(xiàn)。C語(yǔ)言規(guī)定:數(shù)組名就是數(shù)組的首地址常量,即int
a[10];a==
&a[0]C語(yǔ)言系統(tǒng)內(nèi)部處理機(jī)制,指針?lè)绞叫矢?,但不直觀。指針與一維數(shù)組a[6]a[0]a[1]a[2]a[3]a[4]a[5]a[9]memory訪問(wèn)數(shù)組的兩種方式下標(biāo)方式inta[10],
*p;p=a;
(等價(jià)于
p=&a[0];)使p指向a數(shù)組的第一個(gè)元素a[0];a[i],*(a+i),
p[i]
,*(p+i)
等價(jià)
。指針?lè)绞酵ㄟ^(guò)指向數(shù)組元素的指針變量訪問(wèn)所需元素。int
a[10],*p=&a[0];p++;p=&a[0]p++p++指向數(shù)組元素的指針通過(guò)指針引用數(shù)組a[7]a[8]下標(biāo)法
#include
<stdio.h>intmain(
){ inta[10],
i;for(i=0;i<10;i++)scanf("%d",
&a[i]);printf("\n");for(i=0;i<10;i++)printf("%3d",a[i]);return
0;}例:輸出數(shù)組全部元素。指針?lè)?/p>
#include
<stdio.h>intmain(
){int
a[10],
i, *p=a;for(i=0;i<10;i++,p++)scanf(“%d”,
p);printf(“\n”);for(p=a;p<(a+10);
p++)printf(“%3d”,*p
);return
0;}*(a+i)
指針的運(yùn)算指針的算術(shù)運(yùn)算指針表達(dá)式與整數(shù)的加減運(yùn)算指針自增自減運(yùn)算指針的關(guān)系運(yùn)算同類(lèi)指針相減強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算指針表達(dá)式與整數(shù)的加減運(yùn)算一般形式p+n或 p-n其中:p是任意一個(gè)指針表達(dá)式,n是任何一種整型表達(dá)式。計(jì)算規(guī)則表達(dá)式
p+n
的值
=
p的值
+
p所指類(lèi)型長(zhǎng)度*n表達(dá)式
p-n的值
=
p的值 -
p所指類(lèi)型長(zhǎng)度*n說(shuō)明:只有當(dāng)p和p+n或p-n都指向連續(xù)存放的同類(lèi)型數(shù)據(jù)區(qū)域(數(shù)組)時(shí),指針加、減才有實(shí)際意義。C語(yǔ)言規(guī)定:表達(dá)式p+n和p-n的類(lèi)型與p相同。p,ap+1,a+1p+i,a+ia[0]a[1]a[i]a數(shù)組*(p+i)例如:int
a[10],*p,*q;p=a;q=a+6;a[6]p+9,a+9a[9]q=a+6數(shù)組和指針的本質(zhì)不同:數(shù)組名是指針常量,不能改變指針常量的值,a++;a+=2;a=p;
都是非法的。指針p是變量,若p指向數(shù)組的首地址,p+1代表該類(lèi)型的下一變量的地址。語(yǔ)法后綴:
p++
; p--
;前綴:
++p
; --p
;⑴
進(jìn)行++p或p++運(yùn)算后都使p指向下一個(gè)數(shù)據(jù)表達(dá)式p++的值等于p的原來(lái)值;表達(dá)式++p的值等于p的新值;⑵取內(nèi)容運(yùn)算符“
*
”、取地址運(yùn)算符“
&
”和自增自減運(yùn)算符都是單目運(yùn)算符,運(yùn)算的優(yōu)先級(jí)相同,結(jié)合方向都是自右至左
指針自增自減運(yùn)算......p-3p-2p-1pp+1p+2..................數(shù)組a低地址高地址當(dāng)兩個(gè)指針指向同一個(gè)數(shù)組中的元素時(shí),才能進(jìn)行>、<、>=、<=、!=、==的關(guān)系運(yùn)算。任何指針p與NULL進(jìn)行“p==NULL”或“p!=NULL”運(yùn)算均有意義:判斷指針p
是否指向空。指針的關(guān)系運(yùn)算只有同類(lèi)指針進(jìn)行比較才有意義。指針的關(guān)系運(yùn)算例:inta[10],
*p;p=&a[4];a[4]
假定指針p和q指向同一個(gè)數(shù)組,則:p>
q:p>=q:p指針?biāo)冈匚挥趒所指元素之后時(shí)為1,反之為0。p指針?biāo)冈?/p>
素位于q所指元素之后(或兩指針指向同一元素)時(shí)為1,反之為0。p==q:兩指針指向同一元素時(shí)為
1,反之為0。p!=q:兩指針不指向同一元素時(shí)為
1,反之為0。語(yǔ)法:
指針表達(dá)式 關(guān)系運(yùn)算符 指針表達(dá)式==和!=運(yùn)算符,比較兩個(gè)指針表達(dá)式是否指向同一個(gè)內(nèi)存單元;<、<=、>、>=,比較兩個(gè)指針?biāo)竷?nèi)存區(qū)域的先后次序。.語(yǔ)法
:p-q說(shuō)明:同類(lèi)指針相減時(shí),兩個(gè)指針應(yīng)該指向連續(xù)存放的同類(lèi)數(shù)據(jù)區(qū)域。p-q
的值,等于(p的值-q的值)/所指類(lèi)型長(zhǎng)度,
即p,
q兩個(gè)指針之間數(shù)據(jù)元素的個(gè)數(shù)。例如:若有
int
a[10]
,*p, *q;p=a;q=&a[5];則
p-q=5,表示p,
q之間數(shù)據(jù)元素的個(gè)數(shù)是5。同類(lèi)指針相減格式:(類(lèi)型名
*) 指針表達(dá)式功能:將指針表達(dá)式的值轉(zhuǎn)換成指定類(lèi)型的指針。例如:int
*p;double d,
*q=&d;p=(int*
)q;強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算[例8-3]用指針訪問(wèn)數(shù)組元素。#include
<stdio.h>intmain(
){inta[10],*pa,
i;for(i=0;i<10;i++)a[i]=i+1;pa=a;for(i=0;i<10;i++,pa++)printf("%d
",*pa);printf("\n");return
0;}不要忘記賦初值字符指針與字符串字符串的表示形式用字符數(shù)組表示,如:intmain(
){ charstring[]=“Ilove
China!”;printf(“%s\n”,string);return
0;}數(shù)組名用字符指針實(shí)現(xiàn),如:intmain(
){ char*string=“IloveChina!”;printf(“%s\n”,string);return
0;}把“I
love
China!”的首地址賦給指針變量string特點(diǎn):字符串的長(zhǎng)度不受限制;字符指針指向別處,字符串將失蹤。此字符串不能改變,只能讀取。[例8-5]使用字符指針輸出字符串。#include
<stdio.h>intmain(
){ char*p="C
Language";for(;*p!=′\0′;)putchar(*++p);return
0;}字符指針變量與字符數(shù)組的區(qū)別字符數(shù)組由若干個(gè)元素組成,每個(gè)元素中放一個(gè)字符,而字符指針變量中存放的是字符串的首地址。賦值方式:
char
str[
]=“I
am
aboy!”或:
char
str[20];gets(str);字符指針變量指向字符串首地址。賦值方法三種:char*
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字化營(yíng)銷(xiāo)在零售行業(yè)中的應(yīng)用
- 2025年全球及中國(guó)虛擬購(gòu)物平臺(tái)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球長(zhǎng)焊頸法蘭行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球碳纖維管狀編織物行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球集成存儲(chǔ)解決方案行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 思想道德修養(yǎng)與法律基礎(chǔ)
- 羅湖區(qū)政府投資項(xiàng)目代建合同范本
- 水電專(zhuān)業(yè)承包合同
- 政府采購(gòu)項(xiàng)目的采購(gòu)合同
- 大型高炮廣告牌制作合同
- 成品移動(dòng)公廁施工方案
- 2025-2030年中國(guó)干混砂漿行業(yè)運(yùn)行狀況及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025年度部隊(duì)食堂食材采購(gòu)與質(zhì)量追溯服務(wù)合同3篇
- 2025江蘇鹽城市交通投資建設(shè)控股集團(tuán)限公司招聘19人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 新人教版一年級(jí)下冊(cè)數(shù)學(xué)教案集體備課
- 2024托管班二人合伙的協(xié)議書(shū)
- 任務(wù)型閱讀 -2024年浙江中考英語(yǔ)試題專(zhuān)項(xiàng)復(fù)習(xí)(解析版)
- 繪本 課件教學(xué)課件
- 大型央國(guó)企信創(chuàng)化與數(shù)字化轉(zhuǎn)型規(guī)劃實(shí)施方案
- GB/T 16475-2023變形鋁及鋁合金產(chǎn)品狀態(tài)代號(hào)
- 鎖骨遠(yuǎn)端骨折伴肩鎖關(guān)節(jié)脫位的治療
評(píng)論
0/150
提交評(píng)論