下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、sizeof一維數(shù)組和二維數(shù)組1.sizeof的說(shuō)明sizeof在C語(yǔ)言里面屬于操作符,不屬于函數(shù),和變量的+,-屬于同樣的操作符。sizeof后面的括號(hào)里面,可以放類型名,數(shù)組名等內(nèi)存大小確定的類型,不能計(jì)算函數(shù)名,可變數(shù)組的內(nèi)存大小等2.sizeof計(jì)算一維數(shù)組首先,看如下代碼:#includeintmain()inta=1,2,3,4;/*打印內(nèi)存地址*/printf(0 x%x,0 x%x,0 x%x,0 x%xn,a,&a,a+0,&a0);/*計(jì)算內(nèi)存大小*/printf(%d,%d,%d,%dn,sizeof(a),sizeof(&a),sizeof(a+0),sizeof(&a
2、0);return0;我們知道,a代表數(shù)組的起始地址,也就是數(shù)組a的0號(hào)位元素的內(nèi)存起始地址,a+0代表指針a偏移0,因此指向的還是數(shù)組的起始地址,所以a=&a=a+0=&a0,雖然他們的數(shù)值相等,都表示數(shù)組起始地址,但他們的意義不同。數(shù)組名a代表數(shù)組起始地址,如果它參與指針偏移運(yùn)算,那么它就代表一個(gè)指向某一位元素的指針(看本文章最后的總結(jié),數(shù)組名參與偏移運(yùn)算,退化為指針),例如a+0代表指向數(shù)組0號(hào)位元素的指針,因此它的內(nèi)存大小為4。數(shù)組元素a0和*(a+0)表示的意義相同,訪問(wèn)a0,就是從數(shù)組首地址開(kāi)始偏移0,然后再訪問(wèn)內(nèi)存中的數(shù)值,所以,&a0就是&(*(a+0),&和*抵消,為a+0,
3、代表指向數(shù)組0號(hào)位元素的指針,內(nèi)存大小為4。經(jīng)過(guò)上面的分析,就可以理解代碼的運(yùn)行結(jié)果,已經(jīng)在windowsXP,vc6.0下編譯鏈接過(guò):0 xl2ff70,0 xl2ff70,0 xl2ff70,0 xl2ff7016,16,4,4Pressanykeytocontinue3.sizeof計(jì)算二維數(shù)組首先,看如下代碼:#include#includeintmain()inta34=1,3,5,7,9,11,13,15,17,19,21,23;intn=sizeof(a00);printf(a=0 x%x,*a=0 x%xn,a,*a);printf(asize=%d,*asize=%dn,si
4、zeof(a),sizeof(*a);printf(n);printf(a0=0 x%x,*(a+0)=0 x%xn,a0,*(a+0);printf(a0size=%d,*(a+0)=%dn,sizeof(a0),sizeof(*(a+0);TOC o 1-5 h zprintf(n);printf(&a0=0 x%x,&a00=0 x%xn,&a0,&a00);printf(&a0size=%d,&a00size=%dn,sizeof(&a0),sizeof(&a00);printf(n);printf(a1=0 x%x,a+1=0 x%xn,a1,a+1);printf(a1size=%
5、d,a+1=%dn,sizeof(a1),sizeof(a+1);printf(n);printf(&a10=0 x%x,*(a+1)+0=0 x%xn,&a10,*(a+1)+0);printf(&a10size=%d,*(a+1)+0size=%dn,sizeof(&a10),sizeof(*(a+1)+0);printf(n);printf(a2=0 x%x,*(a+2)=0 x%xn,a2,*(a+2);printf(a2size=%d,*(a+2)size=%dn,sizeof(a2),sizeof(*(a+2);printf(n);printf(&a2=0 x%x,a+2=0 x%
6、xn,&a2,a+2);printf(&a2size=%d,a+2size=%dn,sizeof(&a2),sizeof(a+2);printf(n);printf(a10=0 x%x,*(*(a+1)+0)=0 x%xn,a10,*(*(a+1)+0);printf(a10size=%d,*(*(a+1)+0)size=%dn,sizeof(a10),sizeof(*(*(a+1)+0);printf(n);return0;以上代碼,包含了用sizeof計(jì)算各種各樣二維數(shù)組相關(guān)的內(nèi)存大小,大家不要感到疑惑,讀完下面的分析,我們就明白了。a代表了二維數(shù)組的起始地址,&a在內(nèi)存上和a表示的是同一
7、個(gè)地方,還是二維數(shù)組的起始地址,因此用sizeof計(jì)算它們的值,就是整個(gè)二維數(shù)組所占用的內(nèi)存空間。那么,*a,a0,a+0,&a0,&a00,*(a+0),這些都代表什么呢?我們可以用下面這個(gè)圖來(lái)描述二維數(shù)組a:printf(asize=%d,*asize=%dn,sizeof(a),sizeof(*a);這句代碼中,sizeof(a)表示整個(gè)二維數(shù)組的大小,*a表示*(a+0),所以,*a表示一維數(shù)組1,3,5,7的首地址,因此sizeof(*a)是4*sizeof(int)為16。printf(a0size=%d,*(a+0)=%dn,sizeof(a0),sizeof(*(a+0);a0
8、也就是*(a+0),和*3樣,也是指向一維數(shù)組1,3,5,7的首地址,因此a0,*(a+0)用sizeof計(jì)算內(nèi)存大小,就是4*sizeof(int)為16printf(&a0size=%d,&a00size=%dn,sizeof(&a0),sizeof(&a00);&a0就是&(*(a+0),&和*互相抵消,因此相當(dāng)于a+0,數(shù)組名參與了指針偏移運(yùn)算,因此sizeof(&a0)的大小為指針的內(nèi)存大小,是4字節(jié)。&a00就是&(*(*(a+0)+0),&和*抵消以后,為*(a+0)+0,*(a+0)代表一維數(shù)組1,3,5,7的首地址,因此*(a+0)+0表示數(shù)組首地址參與偏移操作,成為指向數(shù)組1,3,5,70號(hào)位元素1的指針,sizeof(&a00)的大小為4剩下的printf的打印相信大家就能理解了,運(yùn)行結(jié)果如下:我們總結(jié)為一句話,不論是一維數(shù)組,還是二維數(shù)組,如果直接sizeof數(shù)組名,那么大小為整個(gè)數(shù)組所占用的內(nèi)存空間,如果計(jì)算類似a+0,a+1等數(shù)組名進(jìn)行了偏移運(yùn)算,那么它就代表指向某個(gè)元素的指針,sizeof計(jì)算的話,其大小為指針的內(nèi)存大小,如
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024午托班租賃合同(含學(xué)生研學(xué)旅行與拓展教育)3篇
- 2024年度堤防加固工程與生態(tài)修復(fù)規(guī)劃合同3篇
- 2024年創(chuàng)新技術(shù)員工培訓(xùn)及知識(shí)產(chǎn)權(quán)保密合同3篇
- 2024年文創(chuàng)園區(qū)保潔服務(wù)與文化設(shè)施維護(hù)承包合同2篇
- 2024年修訂版車輛借用合同3篇
- 2024年度個(gè)人住房貸款擔(dān)保合同范本12篇
- 2024年度跨境電商外幣結(jié)算借貸服務(wù)合作協(xié)議3篇
- 2024年度豪華汽車租賃服務(wù)合同范本3篇
- 新疆警察學(xué)院《生活中的生物學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年315促銷活動(dòng)策劃(32篇)
- 《光伏發(fā)電工程工程量清單計(jì)價(jià)規(guī)范》
- 新概念英語(yǔ)第一冊(cè)1-72課測(cè)試題
- 廣東省廣州市2023年中考數(shù)學(xué)試題(附真題答案)
- 音樂(lè)行業(yè)商業(yè)計(jì)劃書
- 《供應(yīng)商質(zhì)量會(huì)議》課件
- 高壓電纜安裝指導(dǎo)書
- 越劇團(tuán)管理制度
- 2020山東春季高考數(shù)字媒體真題
- 任務(wù)3干鮑魚漲發(fā)
- 氣體檢測(cè)系統(tǒng)中英文對(duì)照外文翻譯文獻(xiàn)
- 湖北省武漢市洪山區(qū)2022-2023學(xué)年四年級(jí)上學(xué)期期末考試科學(xué)試題
評(píng)論
0/150
提交評(píng)論