基礎(chǔ)C++教學(xué)??010【C中指向多維數(shù)組的指針】2019-12-22

←↑→↓↖↙↗↘??
unicode=Geometric Shapes
? 僅僅個別字不同的時候的對比標(biāo)識

? 著重強調(diào)

??◆ 1眉尸、
??◆ 2乏梁、
??◆ 3、

??
??
??
??
??
??
??
??

Miscellaneous Symbols

?
Dingbats
? 重點記憶,個人總結(jié)的點隶垮,或者知識室囊。
??
?

  • ?指向二維數(shù)組元素的指針

 int a[3][3]= { {1,2,3},{6,5,4},{7,8,9}};

 int *p=a;
 for (int i=0;i<9;i++)
 {
     printf("%d\n",*(p+i));
 }
1
2
3
6
5
4
7
8
9

??運行分析:
??1雕崩、二維數(shù)組元素在內(nèi)存中是使用連續(xù)的一塊內(nèi)存區(qū)域進行存放的。
??2波俄、a代表二維數(shù)組起始地址晨逝。
??3、把a的起始地址放到p中
??4懦铺、因為p是int *捉貌,所以在取值的時候,是按4字節(jié)長度取,按int格式識別趁窃,這正好和數(shù)據(jù)定義類型是相同的牧挣。
??所以可以使用for循環(huán),按照一維數(shù)組的操作方式醒陆,直接全部輸出二維數(shù)組的內(nèi)容瀑构。

  • ?指向包含n個元素的一維數(shù)組的指針

??關(guān)鍵格式:

??格式聲明一個int型的數(shù)組指針(這是一個指針,指向一個數(shù)組)刨摩,指向的數(shù)組大小為n個int型寺晌,總大小為n乘以4=4n Byte。

    int a[3][3]= { {0,1,2},{3,4,5},{6,7,8}};
    int (*p)[3]=a;

    printf("a=%x\n",a);
    printf("p=%x\n",p);

    printf("%c",'\n');
    printf("a+1=%x\n",a+1);
    printf("p+1=%x\n",p+1);
a=61fed8
p=61fed8

a+1=61fee4
p+1=61fee4

??聲明一個指向int型數(shù)組的指針p澡刹,數(shù)組大小為3呻征,然后把a[ ][ ]的首地址賦值給了p。
??分別將a和p執(zhí)行加1操作罢浇。
??從結(jié)果可以看到陆赋,a和p的“步長”都是3個int,共計12Byte嚷闭。
??61fee4-61fed8=0x0c=12

??根據(jù)輸出的內(nèi)容攒岛,大致可以將a和p的關(guān)系表示如下:
??注意,圖中的各個不同的數(shù)組維度胞锰,如第1維和第2維在空間上應(yīng)該是重疊的灾锯,但是為了繪制方便和觀察方便,故使用不同的列的加以區(qū)分表示胜蛉。



??現(xiàn)在單獨來看指針p的字面含義:

    int (*p)[3]

??按照定義挠进,p應(yīng)該是一個指向數(shù)組的指針,這個數(shù)組有3個int那么大誊册,具象表示應(yīng)該是:



??賦值a之后领突,應(yīng)該是:
??注意這里p指向的是0,1,2一共三行構(gòu)成的一個整體。




??對p取值一次案怯,*p:
??取值一次后君旦,*p指向了0行的int




??再對p取值一次,**p:
??取到數(shù)組元素值嘲碱。

??可見金砍,對于指向一維數(shù)組的指針,形如int (*p)[3],想要取得數(shù)據(jù)元素值麦锯,必須經(jīng)過2次*取值操作或者2次[ ]下標(biāo)操作恕稠。


  • ?指向二維數(shù)組的(包含n 乘以 m個元素的)指針

??關(guān)鍵格式:

??根據(jù)格式定義,首先把[3][3]的具象意義表示出來:

??然而扶欣,這僅僅只是[3][3]具象表示意義鹅巍,不要忘了還有一個(*p),這個指針p是指向[3][3]這個整體的千扶,表示出來就是:

??后續(xù)依次進行三次*取值操作:

??使用代碼綜合驗證:

    int a[10]={0,1,2,3,4,5,6,7,8,9};

    int (*p)[3][3]=a;

    printf("a=%x\n",a);
    printf("p=%x\n",p);

??注意這里數(shù)組維數(shù)、大小和指針聲明的并不一致骆捧,這也是c指針“靈活”的地方澎羞。只要指針在接收賦值之后能夠在原數(shù)組的范圍內(nèi)進行取值,原數(shù)組的大小敛苇、維數(shù)等其實和指針并無太大關(guān)系妆绞。

a=61fed4
p=61fed4

??把a賦值給p后,具體結(jié)構(gòu)如下:

??這里數(shù)組a正好比指針p的范圍大一個int枫攀,原理上括饶,使用***(p+1)即可取到數(shù)組a的最后一個元素:

      printf("***(p+1)=%x\n",***(p+1));
***(p+1)=9

??程序輸出表明所有推測符合預(yù)期。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脓豪,一起剝皮案震驚了整個濱河市巷帝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扫夜,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驰徊,死亡現(xiàn)場離奇詭異笤闯,居然都是意外死亡,警方通過查閱死者的電腦和手機棍厂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門颗味,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人牺弹,你說我怎么就攤上這事浦马。” “怎么了张漂?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵晶默,是天一觀的道長。 經(jīng)常有香客問我航攒,道長磺陡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任漠畜,我火速辦了婚禮币他,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘憔狞。我一直安慰自己蝴悉,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布瘾敢。 她就那樣靜靜地躺著拍冠,像睡著了一般硝枉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上倦微,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天妻味,我揣著相機與錄音,去河邊找鬼欣福。 笑死责球,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拓劝。 我是一名探鬼主播雏逾,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼郑临!你這毒婦竟也來了栖博?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤厢洞,失蹤者是張志新(化名)和其女友劉穎仇让,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躺翻,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡丧叽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了公你。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踊淳。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖陕靠,靈堂內(nèi)的尸體忽然破棺而出迂尝,到底是詐尸還是另有隱情,我是刑警寧澤剪芥,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布垄开,位于F島的核電站,受9級特大地震影響粗俱,放射性物質(zhì)發(fā)生泄漏说榆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一寸认、第九天 我趴在偏房一處隱蔽的房頂上張望签财。 院中可真熱鬧,春花似錦偏塞、人聲如沸唱蒸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽神汹。三九已至庆捺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屁魏,已是汗流浹背滔以。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留氓拼,地道東北人你画。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像桃漾,于是被迫代替她去往敵國和親坏匪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容