1. 程式人生 > >C藝術篇 1-2 二維數組

C藝術篇 1-2 二維數組

第一個元素 http 分享 默認 info 我們 src ron size

接下來討論二維數組。若有一個二維數組如下:

int x[3][2] ={10,20,30,40,50,60};

此數組共有六個元素(3行,2列),每一元素的地址為&x[0][0]、&x[0][1]、&x[1][0]、&x[1][1]、&x[2][0]、&x[2][1]。

技術分享圖片

技術分享圖片

從輸出的結果得知x[0]等於&x[0][0],x[1]等於&x[1][0]。

由上面的例子 我們知道了一個二維數組x 當用一維數組表示的時候 ,x裏面的數字表示的是行,列默認為0。

集合1-1裏面說的數組名就是地址,所以可以表示 x等於&x[0][0],x+1等於&x[1][0]。

雖然x[0]和x皆表示&x[0][0],若兩者加1,結果是否一樣呢?

請看下面的例子

技術分享圖片

技術分享圖片

從輸出的結果得知,雖然x與x[0]都是等於&x[0][0],但各加1個單位是不一樣的,如x+1是等於&x[1][0],它是第二行第一個元素的地址

而x[0]+1等於&x[0][1],它是第一行第二列元素的地址。

結合剛剛那句話

技術分享圖片

得出結論:二維數組表示時: x可以表示為地址&x[0][0],x[0] == x[0][0],x[1] == x[1][0],因為當用一維數組表示二維數組時,只表示行,列默認為0。

當進行運算符運算時:x+1等於二維數組行+1,即&x[1][0]。x[0]+1等於二維數組列+1,即x[0][1]。

C藝術篇 1-2 二維數組