在c語言裡,陣列就是指標,指標就是陣列,一維指標就是一維陣列,二維指標就是二維陣列。陣列名就是陣列的首位址,所以形參是陣列的時候,必須把陣列的個數也帶過去;
陣列一般通過下標訪問,下標偏移就是位址偏移。可以把一級指標指向一維陣列的首位址。
除此之外,指標比陣列更為靈活。陣列在定義的時候必須指定長度個數,陣列可以有各種型別。但是陣列在初始化之後,必須單個賦值。陣列可以越界賦值。但是不能在沒有定義的情況下越界訪問!指標可以越界賦值和訪問,指標在定址的時候基本都是偏移多少位來完成對記憶體資料的訪問。
在弄清指標陣列和陣列指標的時候必須搞清楚定義的一維陣列還是二維陣列,一級指標還是二級指標。
int(*p)[3], *q, arr[2][3] = , *array[3] ;
q = arr[1];
printf("%4d %4d %4d %4d %4d %4d\n", *(q-3), arr[0][1], q[-1], *q, q[1], arr[1][2]);
p = arr;//p+1=arr+1 *(p+1)==a[1] *(p+1)+1==arr[1]+1 *(*(p+1)+1)==a[1][1]
printf("%4d %4d %4d %4d\n", *(arr[1] + 1), *(*p + 1), **(p + 1), *(*(p + 1) + 1));
array[1] = q;
printf("%4d %4d\n", **(array + 1) );
C語言之指標陣列
指標數值是什麼,有什麼用?通俗的講,指標變數和普通變數的理解差不多,只不過是指標變數儲存的是變數的位址,而普通變數儲存的是值。指標在什麼時候會使用到 傳遞和偏移兩個環節中 使用指標應該注意的事項 使用指標之前應該對其初始化 初始化已經宣告的位址 指標不能賦值具體值 指標所代表的是位址,而不是具體值 ...
C語言之指標陣列
一.指標陣列 1.簡介 簡介 本質是乙個陣列,但是裡面存放的資料都是指標,即陣列元素都是指標。它是 儲存指標的陣列 的簡稱。2.內容格式 資料型別 陣列名 元素個數 例如 int a 4 的優先順序比我們的 的優先順序高,所以與我們的4先結合,形成了我們的陣列的定義,陣列名叫做a,我們平時定義陣列的...
c語言之指標與陣列
考慮該例子 int calendar 12 31 該語句宣告了calendar是乙個陣列,該陣列擁有12個陣列元素,其中每個元素都是乙個擁有31個整型元素的陣列 而不是反過來理解 因此,sizeof calendar 的值是12 31 372與sizeof int 的乘積。如果calendar不是用...