




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
本文格式為Word版,下載可任意編輯——C語言指針變量的運算C語言指針變量的運算
導語:指針變量可以舉行某些運算,但其運算的種類是有限的。它只能舉行賦值運算和片面算術運算及關系運算。讓我們了解一下C語言指針變量如何運算吧!
1.指針運算符
1取地址運算符
取地址運算符是單目運算符,其結合性為自右至左,其功能是取變量的地址。在scanf函數(shù)及前面介紹指針變量賦值中,我們已經(jīng)了解并使用了運算符。
2取內(nèi)容運算符*
取內(nèi)容運算符*是單目運算符,其結合性為自右至左,用來表示指針變量所指的變量。在*運算符之后跟的變量務必是指針變量。需要留神的是指針運算符*和指針變量說明中的指針說明符*不是一回事。在指針變量說明中,“*”是類型說明符,表示其后的變量是指針類型。而表達式中展現(xiàn)的“*”那么是一個運算符用以表示指針變量所指的變量。
main
inta=5,*p=a;
printf%d,*p;
表示指針變量p取得了整型變量a的地址。本語句表示輸出變量a的值。
2.指針變量的運算
1賦值運算
指針變量的賦值運算有以下幾種形式:
①指針變量初始化賦值,前面已作介紹。
②把一個變量的地址賦予指向一致數(shù)據(jù)類型的指針變量。例如:
inta,*pa;
pa=a;/*把整型變量a的地址賦予整型指針變量pa*/
③把一個指針變量的值賦予指向一致類型變量的另一個指針變量。如:
inta,*pa=a,*pb;
pb=pa;/*把a的地址賦予指針變量pb*/
由于pa,pb均為指向整型變量的指針變量,因此可以相互賦值。④把數(shù)組的首地址賦予指向數(shù)組的指針變量。
例如:inta[5],*pa;
pa=a;數(shù)組名表示數(shù)組的首地址,故可賦予指向數(shù)組的指針變量pa
也可寫為:
pa=a[0];/*數(shù)組第一個元素的'地址也是整個數(shù)組的首地址,
也可賦予pa*/
當然也可采取初始化賦值的方法:
inta[5],*pa=a;
⑤把字符串的首地址賦予指向字符類型的指針變量。例如:char*pc;pc=clanguage;或用初始化賦值的方法寫為:char*pc=CLanguage;這里應說明的是并不是把整個字符串裝入指針變量,而是把存放該字符串的字符數(shù)組的首地址裝入指針變量。在后面還將細致介紹。
⑥把函數(shù)的入口地址賦予指向函數(shù)的指針變量。例如:int*pf;pf=f;/*f為函數(shù)名*/
2加減算術運算
對于指向數(shù)組的指針變量,可以加上或減去一個整數(shù)n。設pa是指向數(shù)組a的指針變量,那么pa+n,pa-n,pa++,++pa,pa--,--pa運算都是合法的。指針變量加或減一個整數(shù)n的意義是把指針指向的當前位置指向某數(shù)組元素向前或向后移動n個位置。理應留神,數(shù)組指針變量向前或向后移動一個位置和地址加1或減1在概念上是不同的。由于數(shù)組可以有不同的類型,各種類型的數(shù)組元素所占的字節(jié)長度是不同的。如指針變量加1,即向后移動1個位置表示指針變量指向下一個數(shù)據(jù)元素的首地址。而不是在原地址根基上加1。
例如:
inta[5],*pa;
pa=a;/*pa指向數(shù)組a,也是指向a[0]*/
pa=pa+2;/*pa指向a[2],即pa的值為pa[2]*/指針變量的加減運算只能對數(shù)組指針變量舉行,對指向其它類型變量的指針變量作加減運算是毫無意義的。3兩個指針變量之間的運算只有指向同一數(shù)組的兩個指針變量之間才能舉行運算,否那么運算毫無意義。
①兩指針變量相減
兩指針變量相減所得之差是兩個指針所指數(shù)組元素之間相差的元素個數(shù)。實際上是兩個指針值地址相減之差再除以該數(shù)組元素的長度字節(jié)數(shù)。例如pf1和pf2是指向同一浮點數(shù)組的兩個指針變量,設pf1的值為2022H,pf2的值為2000H,而浮點數(shù)組每個元素占4個字節(jié),所以pf1-pf2的結果為2000H-2022H/4=4,表示pf1和pf2之間相差4個元素。兩個指針變量不能舉行加法運算。例如,pf1+pf2是什么意思呢?毫無實際意義。
②兩指針變量舉行關系運算
指向同一數(shù)組的兩指針變量舉行關系運算可表示它們所指數(shù)組元素之間的關系。例如:
pf1==pf2表示pf1和pf2指向同一數(shù)組元素
pf1pf2表示pf1處于高地址位置
pf1pf2表示pf2處于低地址位置p=
main
inta=10,b=20,s,t,*pa,*pb;
pa=a;
pb=b;
s=*pa+*pb;
t=*pa**pb;
printfa=%d/nb=%d/na+b=%d/na*b=%d/n,a,b,a+b,a*b;
printfs=%d/nt=%d/n,s,t;
說明pa,pb為整型指針變量
給指針變量pa賦值,pa指向變量a。
給指針變量pb賦值,pb指向變量b。
本行的意義是求a+b之和,*pa就是a,*pb就是b。
本行是求a*b之積。
輸出結果。
輸出結果。
指針變量還可以與0對比。設p為指針變量,那么p==0說明p是空指針,它不指向任何變量;p!=0表示p不是空指針??罩羔樖怯蓪χ羔樧兞抠x予0值而得到的。例如:#defineNULL0int*p=NULL;對指針變量賦0值和不賦值是不同的。指針變量未賦值時,可以是任意值,是不能使用的。否那么將造成意外錯誤。而指針變量賦0值后,那么可以使用,只是它不指向概括的變量而已。
main
inta,b,c,*pmax,*pmin;
printfinputthreenumbers:/n;
scanf%d%d%d,a,b,c;
ifab
pmax=a;
pmin=b;
else
pmax=b;
pmin=a;
ifc*pmaxpmax=c;
ifc*pminpmin=c;
printfmax=%d/nmin=%d/n,*pmax,*pmin;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 ISO 14687:2025 EN Hydrogen fuel quality - Product specification
- 2025年度大型企業(yè)運營總監(jiān)職位聘用合同書
- 2025年度旅游項目開發(fā)貸款合同范本
- 2025年度體育產(chǎn)業(yè)運動員雇傭合同范本
- 2025年度養(yǎng)豬場附屬設施建筑承包服務協(xié)議
- 2025高考作文預測:“讓”與“不讓”
- 秋季學習資源整合計劃
- 生物網(wǎng)絡教學資源建設計劃
- 制定餐飲行業(yè)安保措施計劃
- 幼兒園創(chuàng)新課程的開發(fā)與實踐計劃
- 紅金大氣商務風領導歡迎會PPT通用模板
- 雞蛋浮起來實驗作文課件
- 例談小組合作學習在小學英語教學中的有效開展(講座)課件
- 產(chǎn)品質(zhì)量法培訓講義課件
- 民政局業(yè)務工作流程圖
- 《現(xiàn)代管理學》全套課件
- 警情處置與執(zhí)法安全匯編課件
- 第五講佛教在中國的傳播及流變課件
- 《生物化學與分子生物學》(第9版)配套題庫
- 【部編版】六年級道德與法治下冊全冊課件
- DBJ51T 198-2022 四川省既有民用建筑結構安全隱患排查技術標準
評論
0/150
提交評論