登入使用能幫助您收藏更多喜歡的好書,
希望大家都能多多登入,管理員在此感激不盡啦!
《從先天土木聖體到混沌電子道胎》第41章 C語言之指針(三)指針數組
  聲明,本章的代碼省略了頭文件和主函數,方便我寫出來

  非常有趣的一點,指針數組

  一維數組這麽表示:

  int arr[4]={1,2,3,4};

  二維數組這麽表示:

  int arr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

  一維數組是線性的1,2,3,4。

  而二維數組是平面的

  1, 2, 3, 4

  5, 6, 7, 8

  9,10,11,12

  而指針數組,很明確,就是由指針組成的數組。

  例如:

  int* arr1[3]={1,2,3};

  那麽,其實這個一維指針數組中存放的就是1,2,3這三個數的地址。

  arr1[0]就是1的地址,arr1[1]是2的地址,arr1[2]就是3的地址。

  說白了,這就是一個存放地址的數組。

  而解引用之後*arr1[0]就變回了1,*arr1[1]就變回了2,arr1[2]就變回了3。

  而arr1[0]+1=arr1[1],這點看過前面的應該就知道怎麽回事了

  如果想要創建一個二維指針數組,不可以這麽來:

  int arr1[4]={1,2,3,4};

  int arr2[4]={2,3,4,5};

  int arr3[4]={3,4,5,6};

  int* parr[3]={arr1,arr2,arr3};

  因為我們知道,arr這個數組名,指的是數組首元素的地址,也就是說,{arr1,arr2,arr3}表示的並不是一個二維數組,而是三個地址,這三個地址分別為arr1,arr2,arr3的首元素。

  但你用printf打印,打印parr[2][3]你卻能夠打印出6,可以打印出二維數組

  因為parr[0]== arr1,parr[0][j]== arr1[j]

  也就是說,parr[2][3]可以這麽理解,parr[2]== arr3,所以parr[2][3]== arr3[3]== 6。
鍵盤左右鍵 ← → 可以切換章節
章節問題回報:
翻譯有問題
章節內容不符
章節內容空白
章節內容殘缺
上下章節連動錯誤
小說很久沒更新了
章節顯示『本章節內容更新中』
其他訊息