C 二維陣列與指標的關係

2021-06-13 18:34:22 字數 777 閱讀 1070

一維陣列

首先說陣列,陣列是乙個很神奇的東西。因為它的名字可以當做首元素的指標,但是當你sizeof(陣列名)的時候,又可以顯示出整個陣列的大小。據說這是因為sizeof在編譯時就已經計算出變數的大小了。當陣列當做函式引數傳遞時,它自動被轉換為陣列首元素的指標。 但是我們不可以改變陣列的位址。

比如說 int array=;  這是乙個有三個元素的陣列,我們可以這樣  *arrya=3;但是不可以這樣 array++.   又可以這樣 int *p = array; p++;

二維陣列

我們可以把二維陣列看成 幾行幾列的矩陣,比如 int array[2][3]=,}可以看成

1 2 3

4 5 6 

或者我們可以把它看成是 兩個具有三個元素的一維陣列

和一維陣列一樣,二維陣列的陣列名也可以當做指標用。 但是應該說它是乙個二級指標吧。但是我們把二維陣列的陣列名賦給乙個二級指標編譯器會給出警告。 所以要利用二級指標的陣列名我們就要用陣列指標了

int array[3]=,};   int (*arr)[3]  /*這是乙個陣列指標*/ = array;  我們可以把二級指標的陣列名當做指標賦給陣列指標 也可以把一維陣列的陣列名取位址之後賦給陣列指標。  int array=;arr =  &array;

一維陣列的首位址加一可以移動到下乙個元素的位置,但是二維陣列的首位址加一會移動到下一行的首元素的位置。例如array+1就會移動到下一行的位置。如果想要在某一行上移動到下乙個元素,可以這樣做

array[0]+1;  這代表 指標在第一行上移動到了下乙個元素的位置。

指標與陣列的關係(一維 二維)

前提條件 int a 10 元素個數隨意自己定 int p a 定義指標時直接初始化,也可以分為兩步 int p p a a i 等價於 a i 等價於 p i 等價於 p i第i 1個元素的值 a i 等價於 a i 等價於 p i 等價於 p i 前提條件 對於二維陣列 int a 2 3 2行...

C 二維陣列和指標的關係

再翻開c primer時,不禁感嘆此書的嚴謹細緻。再學習下陣列和指標。主要講解二維陣列和指標的對應關係。掃盲 複習 陣列是一種復合資料型別,對資料型別,必然要介紹定義和初始化。定義和初始化 陣列的維數必須用值大於等於1的常量表示式定義。此常量表示式只能包含整型字面值常量 列舉常量貨用常量表示式初始化...

C 二維陣列與指標

從鍵盤輸入r行c列二維整型陣列,找出每一行的次最大值並顯示出來。要求 1 r和c為符號常量 2 二維陣列是動態申請生成的 3 每一行的次最大值是利用單獨的函式呼叫獲得的 4 對陣列元素的訪問以及函式引數宣告等都是利用指標實現的。include stdio.h include iostream inc...