關於C語言的指針(4)訪問數組

關於C語言的指針(4):

指針和二維數組

間接訪問數組元素

在這裏插入圖片描述
x的數值是n,n是數組元素x[0]的地址,x+1的數值是n+4,n+4是數組元素x[1]的地址,
數組名x下的數值是數組元素x[0]的地址,x+1的數值是數組元素x[1]的地址,
*x表示數組元素x[0]的數值, *(x+1)表示數組元素x[1]的數值······
x+i的數值表示的是數組元素x[i]的地址, (x+1)表示數組元素x[i]的數值
由於x[0]和x[1]也表示數組元素x[0]和x[1]的數值,所以
x等於x[0] , (x+1)等同於x[1],就是(x+i)等同於x[i]

二維數組中指向一維數組和數組元素的指針和數組元素的表達方式:
對應類型爲int的二維數組x[2][3],指向以爲數組的指針、指向數組元素的指針和數組元素的數值的表達方式不同,應該是:

在這裏插入圖片描述
C語言用 * c和 * (x+1)表示只想數組元素x[0][0]和x[1][0]的指針,並將基本單位從存儲元素數量等於數列的一維數組所需喲的存儲單元數量變爲存儲單個數組元素所需要的存儲單元數量,故 * x、 * x+1、 * x+2分別指向的是x[0][0]、x[0][1]和x[0][2]的指針, * (x+1)、 * (x+1)+1、 * (x+1+2)分別是指向x[1][0]、x[1][1]、x[1][2]的指針,
所以可以用 * ( * x)、 * ( * x+1)、*( * x+2)引用和賦值數組元素x[0][0]、x[0][1]、x[0][2]用 * ( * (x+1))、 * ( * (x+1)+1)和 * ( * (x+1)+2)引用和賦值給x[1][0]、x[1][1]、x[1][2]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章