一維陣列
首先說陣列,陣列是乙個很神奇的東西。因為它的名字可以當做首元素的指標,但是當你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...