看個三維數組的筆試題。
給定下列聲明,把下列各個指針表達式轉換為下標表達式。
這是最近學生在做筆試題時候遇到的,先別管這個三維數組有沒有實用價值,既然出現了,還是得做。
三維數組可以看成是由多個二維數組組成。
比如題目中聲明的這個,就是由4個5行3列的二維數組組成。把這些二維數組編個號,就是 0 1 2 3。
三維數組比二維數組更加復雜一點,我們先來搞懂幾個概念。
在三維數組中:
數組名 array 表示第 0 個二維數組的地址;
array[0] 表示第 0 個二維數組第 0 行的地址;
array[0][0] 表示第 0 個二維數組第 0 行第 0 個元素的地址;
array[0][0][0] 就是具體的元素,它不表示地址。
再來看題目。
*array。array表示第 0 個二維數組地址,*array表示第 0 個二維數組第 0 行的地址,下標表示法 array[0]。
*(array + 2) 。array + 2 表示第2個二維數組的地址,再加星號,就是第2個二維數組首行地址,下標表示法 array[2]。
*(array + 1) + 4。 array + 1表示第 1 個二維數組的地址,加上星號,表示第1個二維數組首行地址,再加4,表示第4行地址,下標表示法 array[1] + 4。
第四題,在第三題的基礎上又加上了星號,含義再次改變,表示第 1 個二維數組,第 4 行首元素的地址,下標表示法 array[1][4]。
第五題最簡單,直接表示第 3 個二維數組第 1 行第 2 個元素,array[3][1][2]。
第六題雖然也有三個星號,但是寫法跟上面略有區別。*array 表示第 0 個二維數組首行地址,+1表示第 1 行地址,再加星號,表示第一行首元素地址,加 2 表示第一行第二個元素地址,
最后一個星號就是取值,用下標表示就是array[0][1][2]。
最后三個留給大家練習使用。
在數組和指針的概念中,* 和 [] 有相同的意思,雖然有時候不是真正的取值操作,但是可以改變地址的含義。比如題目中,出現 1 個星號,表示行的地址,出現兩個星號,表示元素的地址,出現三個星號,就是具體的元素。
審核編輯:湯梓紅
-
三維
+關注
關注
1文章
512瀏覽量
29022 -
指針
+關注
關注
1文章
481瀏覽量
70595 -
二維
+關注
關注
0文章
41瀏覽量
12005 -
數組
+關注
關注
1文章
417瀏覽量
26003
原文標題:三維數組,如何用下標表示指針
文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論