二維陣列 指標陣列 陣列指標 二級指標

2021-07-03 16:45:32 字數 1833 閱讀 2347

#include /*

指標陣列:array of pointers,即用於儲存指標的陣列,也就是陣列元素都是指標

陣列指標:a pointer to an array,即指向陣列的指標

int* a[4] 指標陣列     

表示:陣列a中的元素都為int型指標(優先順序高於*)

元素表示:*a[i]

int (*a)[4] 陣列指標     

表示:指向陣列a的指標

元素表示:(*a)[i]   */

int main(int argc, char *argv)

,,};

int *ptr_arr[3];

int (*arr_ptr)[5];

int **pptr;

int i,j; /*

* printf("sizeof(arr) = %d \n", sizeof(arr));    //3*5*4 = 60

* printf("sizeof(ptr_arr) = %d \n", sizeof(ptr_arr)); //3*4 = 12

* printf("sizeof(arr_ptr) = %d\n", sizeof(arr_ptr)); //4

* printf("sizeof(pptr) = %d\n", sizeof(pptr)); //4 *

* */

printf("1.output in the style of arr:\n");

//二維陣列輸出,觀察輸出結果與陣列指標輸出形式相同

printf("%p\n", arr);

for(i = 0; i < 3; i++)

printf("\n\t\t");

for( j = 0; j < 5; j++)

printf("\n"); }

printf("2.output in the style of ptr_arr:\n");//指標陣列輸出,觀察輸出結果與二級指標輸出形式相同

ptr_arr[0] = arr[0];

ptr_arr[1] = arr[1];

ptr_arr[2] = arr[2];

printf("%p\n", ptr_arr);

for(i = 0; i < 3; i++)

printf("\n\t\t");

for(j = 0; j < 5; j++)

printf("\n"); }

printf("3.output in the style of arr_ptr:\n");//陣列指標輸出,觀察結果。

arr_ptr = &arr[0]; // arr_ptr = arr; 這樣寫更能體現他們的關係

printf("%p\n", arr_ptr);

for(i = 0; i < 3; i++)

printf("\n\t\t");

for(j = 0; j < 5; j++)

printf("\n"); }

printf("4.output in the style of pptr:\n");

//二級指標輸出,觀察結果。

二維陣列與二級指標

今日在論壇上看到有人問到指標 級指標和二維陣列 我們知道char array abcdef array是陣列的首位址,那麼在二維陣列中array當然也是陣列的首位址,看看這個定義char array 3 怎麼知道的呢?定義這樣乙個陣列,在vc除錯視窗中 我們看到 array 0x64324234 a...

二級指標與二維陣列

include 輸入輸出標頭檔案。include 本程式需要用到malloc free函式,引用該標頭檔案。int main 定義二維陣列a,並賦值從1 12.int p null 定義二維指標。int i,j p int malloc sizeof int 3 要訪問的陣列有三行,所以申請三個一維...

二維陣列和二級指標

前兩天寫個程式,傳引數的時候想傳個二維陣列進去,結果悲劇了,函式寫成fun int p 原來沒有這麼寫過,以為這麼寫也是對的,結果錯了,查了些資料,做個總結。fun int p 這裡面的int p 這裡的p不是二維陣列的指標,而是指向指標的指標,即二級指標。正確的二維陣列的指標應該是 int a 2...