這是一個(gè)經(jīng)常會(huì)忘卻的知識(shí)點(diǎn),最近也一直在吃這方面的虧索性整個(gè)復(fù)習(xí)一遍把這個(gè)知識(shí)點(diǎn)徹底牢記
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括阜新網(wǎng)站建設(shè)、阜新網(wǎng)站制作、阜新網(wǎng)頁(yè)制作以及阜新網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,阜新網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到阜新省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
一.一維數(shù)組
若有數(shù)組 int a[6];
a的值是數(shù)組首元素的地址,所以a+1,就是第二個(gè)元素的地址。
而&a是整個(gè)數(shù)組的地址,所以&a+1,就是向后移動(dòng)(10*4)個(gè)單位。所以相差40
一維數(shù)組方面較為基礎(chǔ),主要是記憶所以不舉例代碼
二.二維數(shù)組
二維數(shù)組方面是需要稍微費(fèi)心學(xué)習(xí)下的
首先是定義方面
若是有數(shù)組 a [ 2 ] [ 3 ]
a代表第0行的首地址,其步長(zhǎng)為一行的長(zhǎng)度(這里為12),
所以a+1代表第1行的首地址,比a大12;a+2代表第2行的首地址,比a大24
&a[i]代表第i行首地址,等價(jià)于a+i
a代表第0行第0個(gè)元素的地址,其步長(zhǎng)為一個(gè)元素的長(zhǎng)度(4),所以 a+1比 a大4
(a+1)代表第1行第0個(gè)元素的地址,比* a大一行的長(zhǎng)度(12)
a[i]代表第i行首元素地址,等價(jià)于*(a+i)
&a代表整個(gè)數(shù)組的首地址,其步長(zhǎng)為一個(gè)數(shù)組的大?。?4)
所以&a+1代表該數(shù)組最后一個(gè)元素的下個(gè)位置的地址,比a大24
(a+i)+j代表第i行第j列元素的地址
(a+0)+0代表第0行第0個(gè)元素,a + 1代表第0行第1個(gè)元素,比(a+0)+0大4
&a[ i ][ j ]代表第i行第j列元素的地址,等價(jià)于*(a+i)+j
實(shí)例具體見(jiàn)下圖:
(此圖來(lái)源網(wǎng)絡(luò))
實(shí)驗(yàn)代碼:
#include
using namespace std;
int main(){
int a[2][3] = { 1, 2, 3, 4, 5, '\0' };
cout << a << endl;
cout << &a << endl;
cout << *a << endl;
return 0;
}
輸出結(jié)果為: