1 ) 在了解二維數(shù)組之前,我們先來了解一維數(shù)組及其指針
創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計與策劃設(shè)計,屏南網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:屏南等地區(qū)。屏南做網(wǎng)站價格咨詢:18982081108我們知道,一維數(shù)組中:數(shù)組名代表-->數(shù)組首元素的首地址 (千萬不要認為是數(shù)組的首地址(&a),絕對不是)
在內(nèi)存中,該代碼的表現(xiàn)形式如下圖:
#include{ int a[4]; int *p = a; //表明該指針指向了數(shù)組的首元素地址,當(dāng)然也可以寫為 int *p = &a[0]; return 0; }
-- 這時候,對指針取值(*p),就是對取出指向地址&a[0]中的值的就是a[0]的數(shù)據(jù)。
----------------------------------分割線------------------------------------
2 )下面我們進入二維數(shù)組的介紹,首先,請看一段代碼:
#include
int main()
{
int a[2][4] = {1,2,3,4,
5,,4,5,6};
return 0;
}該代碼的表現(xiàn)形式如下圖:
右邊的a[ 0 ] [ 0 ] 這些數(shù)據(jù)對應(yīng)的是二維數(shù)組中(每個數(shù)組中的元素)。
了解了二維數(shù)組在內(nèi)存中的表現(xiàn)形式:
--我們開始引入數(shù)組指針的概念:
2.1) 顧名思義:數(shù)組指針就是指向數(shù)組的指針,根據(jù)復(fù)雜類型的確認 ,數(shù)組指針形式為 int(*p)[ 3 ]; 表明該指針指向了(有三個int型數(shù)據(jù))的數(shù)組 ,那么該數(shù)組名 a 就是數(shù)組a[ 0 ]的首地址,即(&a[ 0 ],也可寫為a)
---(這點和一維數(shù)組的數(shù)組名相同----->都是數(shù)組首元素的首地址)
(***注意:該 圖形兩塊不同的區(qū)域代表兩個不同的數(shù)組----后面跟著的是每一個數(shù)組里面包含的元素)
2.2) a[ 0 ]這個數(shù)組名 代表了a[ 0 ]這個數(shù)組里面 a[ 0 ][ 0 ]的值的地址, 即----> a[ 0 ] == &a[ 0 ][ 0 ] -
對于a[ 0 ]---- 這里可理解(不可畫等號)為a[ 0 ] 是一個指針 ( 因為數(shù)組名是該首元素a[ 0 ][ 0 ]的地址嘛,既然是地址,就必須用指針來接收 )。
2.3)p = a ;就是指向了a[ 0 ]這個數(shù)組的首地址。 也可寫成&a[ 0 ]; 名為二維數(shù)組的行指針
那么如果對 p 進行 p +1 操作,就表示地址移動到下一行(移動了sizeof(int)*4 = 16個字節(jié)),就是下一個數(shù)組的地址 -- 如上圖所示
技巧 - - / * 我們將二維數(shù)組依次看作一維數(shù)組逐步分析 * /
2.4)所以 p = a + i ; 等價于 p = &a[ 0 ] + i
這是行指針的概念,如果對 p 取 * 運算符,表示取出 p 指向的內(nèi)容,而 p 指向的的內(nèi)容就是a[ 0 ], 行指針用來確定對哪一個數(shù)組的值進行操作, 直觀的就是,這這個二維數(shù)組中, 選 a[ 0 ], a[ 1 ]這兩個之中的其中一個進行操作),
2.5) *p = *( &a[ 0 ] )= a[ 0 ] , * (p + i) = a[ i ](c語言中,方括號[ ]運算符和*()運算符一致,可互換)
a[ 0 ] + i == &a[ 0 ][ 0 ] + i 就是列指針的概念(對數(shù)組的每一個元素進行操作),對a[ 0 ]這個數(shù)組里面的元素地址 + i ,指到相應(yīng)元素a[ 0 ][ i ]的地址 即 &a[ 0 ][ i ]我們已經(jīng)知道a[ 0 ]就是 a[ 0 ][ 0 ]的值的地址,即&a[ 0 ][ 0 ] 所以如果對a[ 0 ]取 * 運算符,得到的就是a[ 0 ][ 0 ]的值。
即*( a[ 0 ]+ i ) = a[ 0 ][ i ]
--------------------------------------看了這些不知道對各位朋友有無幫助。
下面我對二級指針做一個畫圖分析: 讓我們更深一步的理解二維數(shù)組指針
---------------------------------------------------------------------------------------------------
在文中有什么不對或者需要改進的地方,請各位朋友對我給出寶貴的意見和建議
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。