指針數(shù)組和數(shù)組指針的區(qū)別.doc

指針數(shù)組和數(shù)組指針的區(qū)別.doc

ID:58508755

大?。?2.50 KB

頁數(shù):2頁

時間:2020-09-03

指針數(shù)組和數(shù)組指針的區(qū)別.doc_第1頁
指針數(shù)組和數(shù)組指針的區(qū)別.doc_第2頁
資源描述:

《指針數(shù)組和數(shù)組指針的區(qū)別.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、指針數(shù)組和數(shù)組指針的區(qū)別以前這兩問題一直都不是很清晰,寫程序也管不了這么多,只要不出錯能跑出結(jié)果就行,其實(shí)很多用C的程序員對C的基礎(chǔ)知識都一知半解。這次要給學(xué)生講指針這一章,特意關(guān)注了一下。而網(wǎng)上一些相關(guān)回答也沒嚴(yán)格區(qū)分,顯得十分晦澀。這里整理如下:數(shù)組指針(也稱行指針)定義int(*p)[n];()優(yōu)先級高,首先說明p是一個指針,指向一個整型的一維數(shù)組,這個一維數(shù)組的長度是n,也可以說是p的步長。也就是說執(zhí)行p+1時,p要跨過n個整型數(shù)據(jù)的長度。如要將二維數(shù)組賦給一指針,應(yīng)這樣賦值:inta[3][4];int(*p)[4];//該語句是定義一個數(shù)組指針,指向

2、含4個元素的一維數(shù)組。p=a;//將該二維數(shù)組的首地址賦給p,也就是a[0]或&a[0][0]p++;//該語句執(zhí)行過后,也就是p=p+1;p跨過行a[0][]指向了行a[1][]所以數(shù)組指針也稱指向一維數(shù)組的指針,亦稱行指針。指針數(shù)組定義int*p[n];[]優(yōu)先級高,先與p結(jié)合成為一個數(shù)組,再由int*說明這是一個整型指針數(shù)組,它有n個指針類型的數(shù)組元素。這里執(zhí)行p+1是錯誤的,這樣賦值也是錯誤的:p=a;因?yàn)閜是個不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],而且它們分別是指針變量可以用來存放變量地址。但可以這樣*p=a;這里*p表示

3、指針數(shù)組第一個元素的值,a的首地址的值。如要將二維數(shù)組賦給一指針數(shù)組:int*p[3];inta[3][4];for(i=0;i<3;i++)p[i]=a[i];這里int*p[3]表示一個一維數(shù)組內(nèi)存放著三個指針變量,分別是p[0]、p[1]、p[2]所以要分別賦值。這樣兩者的區(qū)別就豁然開朗了,數(shù)組指針只是一個指針變量,似乎是C語言里專門用來指向二維數(shù)組的,它占有內(nèi)存中一個指針的存儲空間。指針數(shù)組是多個指針變量,以數(shù)組形式存在內(nèi)存當(dāng)中,占有多個指針的存儲空間。還需要說明的一點(diǎn)就是,同時用來指向二維數(shù)組時,其引用和用數(shù)組名引用都是一樣的。比如要表示數(shù)組中i行j列

4、一個元素:*(p[i]+j)、*(*(p+i)+j)、(*(p+i))[j]、p[i][j]

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

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

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