關於二維陣列a i j

2021-08-04 01:22:32 字數 815 閱讀 4097

下午學習時遇到了二維陣列的相關問題,寫此部落格記錄一下,說不定以後還會用到。

對於二維陣列來說:

int a[3][4] = , 

, };    

一、a[0][0]為第乙個元素,那麼取位址後&a[0][0]為第乙個元素的位址;

二、a[0]為第一行的首位址;

三、二維陣列名a的值為首位址;

四、對a解引用後*a為a[0],為第一行的首位址;

故a,a[0],*a,&

a[0][0]均相等,為首位址

延伸:我們知道若 int a=0; int *p=&a; 則輸出p得到的是位址,輸出p+1得到的是之前的結果再加4,因為int 佔4位元組;對p加一實際上是在記憶體中加4位元組。

對於二維陣列a[3][4]來說:

a+0的值為第一行的首位址,a+1的值為第二行的首位址,a+2的值為第三行的首位址;

*(a+0)為a[0],為第一行的首位址;*(a+1)為a[1],為第二行的首位址;*(a+2)為a[2],為第三行的首位址;

也就是說a+i,*(a+i),a[i]三者的值是相等的(i=0,1,2,3......)

那麼用*(*(a+i)+j)就可以找到第i+1行,第j+1列的值(因為i,j是從0開始的,行列是從一開始的)

舉例:

int main()

,                      , 

};/* cout << a << " " <<*a<<" "<< a[0] << " " << &a[0][0];*/

for (int i = 0; i < 3; i++)}

return 0; }

過載二維陣列a i j 為a i,j

過載函式呼叫運算子 的乙個較好的例子是將 以下的二維陣列的下標表示方法chessboard row column 改為常用方法chessboard row,column 試圖呼叫運算子 扶持上述表示法 過載函式呼叫運算子 的乙個較好的例子是將 以下的二維陣列的下標表示方法chessboard row...

二維陣列 二維陣列和指標

include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...

關於指標 二維陣列討論

近來得閒看了阿蓉的關於指標的文章 精華區 覺得內容很生 動,討論得也很細緻。於是忍不住也想聊上幾句,和大家 一下。概括的說,指標其實就是可變陣列的首位址,說是可變陣列,是 指其包含內容的數量的可變的,並且是可動態申請和釋放的,從而充 分節約寶貴的記憶體資源。我一向喜歡一維陣列,除非萬不得已,我一 般...