1樓:匿名使用者
cout<<*(*(a+i)+j)<
首先你要了解
在一維陣列中:
*a表示第一個值,
a+1表示第二個值的指標,
*(a+1)表示第二個值的值
***********************************====
二維陣列屬於高階指標也就是**p
在*(*(a+i)+j)中:
*(a+i)在二維陣列中,是一個指標哦,不是值!!
*(*(a+0)+0)表示第一個值,
*(a+0)+1表示第一組的,第二個值的指標*(*(a+0)+1)表示第一組的,第二個值的值*(*(a+1)+1)表示第二組的,第二個值的值
2樓:飛翔的菜菜
你要記住 a[i]和*(a+i)等價的,
但在二維陣列中表示的是 地址。
在一位陣列中是直。
你可以這樣理解,
一個一位陣列,他的每個元素都是一個陣列,那他就是一個二維陣列,那麼a[i]或*(a+i)就表示相應的那個元素,而這個元素是一個陣列,
當然a[i]或*(a+i)指的就是這一陣列的首地址,以此推之,a[i]+j或*(a+i)+j就是&a[i][j]
3樓:檀木妍
這個是二維陣列,二維從一維類推:一維中a[i]的a是首地址,二維中a[i][j]的a[i]是第i行的首地址。在二維a[i][j]裡,a只能代表整個二維陣列儲存的第一個地址,但是不能代表每一行資料儲存的首地址,就好比一個班級裡,a代表的是整個班的班長,a[i]代表的是每個小組的小組長。
*(a+i)代表的是第i行的第一個元素的地址,*(a+i)+j就代表了第i行第j個元素的地址,*(*(a+i)+j)就代表了第i行第j個元素。
4樓:
這是一個二維陣列,把它當做一維陣列來看,每個過元素就是一個一維陣列,陣列名a是陣列首地址,則它指向第一個元素,*a則是這個元素,而這個元素本身是個陣列,所以*a只是陣列名而已,所以得再進行一次解引用,及**a才是這個二維陣列第一個元素。
C語言指標P1表示陣列A1指標的指標求解釋
你的定義應該大概是這樣吧,舉個例子 a 3 3 int p a 所以 p就相當於 a 0 0 畫了一幅內圖,你可以看一下 指標 容是一個雙重指標,是指向指標的指標 c中指標bai是指標,陣列是陣列,兩個du 沒有必然聯絡。zhi a i j 等價於daoa i j 說法不準確,應是 a i j 的值...
編寫逆向排序函式(陣列或指標)C謝謝
include void sort int x,int n void main i printf before the array is for i 0 i 6 i printf 3d a i 輸出呼叫前陣列 sort a,6 printf nafter the array is for i 0 i...
c語言中關於指向陣列的指標C語言中關於指向陣列的指標
char str 100 char pi str 相當於char pi pi str char ppi pi 這個地方抄錯了。應為char ppi pi 定義加 表明這是指標型別的變數 用的時候,就是用的指標,加 幹什麼。只有取指標所指變數的值,或給指標所指的變數賦值的等涉及指標所指的變數的時候,才...