C語言 陣列指標與指標陣列區別

2021-08-18 07:25:43 字數 1067 閱讀 7718

陣列指標(也稱行指標)

int (*p)[n];

()優先及高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p+1時,p要跨過n個整型資料的長度。

int a[3][2]

int (*p)[2]

p = a;

p++; 該語句執行後,也就是p=p+1,p跨過a[0]指向了a[1]

所以陣列指標也稱指向一維陣列的指標,亦稱行指標。

檢視下例demo:

#includeint main(),,};

int (*p)[2] = a;

int row = sizeof(a)/sizeof(a[0]);

int col = sizeof(a[0])/sizeof(a[0][0]);

printf("row = %d ,col = %d\n",row,col);

int i = 0, j = 0;

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

printf("\n");

}int *p1 = p[0];

printf("%d,%d",*p1,*p1+1);

p1 = p[1];

printf("%d,%d",*p1,*p1+1);

return 0;

}

指標陣列

定義int *p[n]

優先順序高,先與p結合成為乙個陣列,再由int *說明這是乙個整型指標陣列,它有n個指標型別的陣列元素。這裡執行p+1時,則p指向下乙個陣列元素,

#includeint main(),,};

int *p[3];

int row = sizeof(a)/sizeof(a[0]);

int col = sizeof(a[0])/sizeof(a[0][0]);

int i = 0, j = 0;

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

printf("\n");

}return 0;

}

C語言指標陣列與陣列指標

初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...

陣列指標與指標陣列區別

前提 陣列指標是指標 指標陣列是陣列 示例 int p1 5 和 int p1 5 前者為指標陣列 後者為陣列指標。涉及運算符號優先順序 陣列下標比取值運算子 的優先順序更高。自右向左結合。先結合陣列下標.先談指標陣列 int p1 5 指向整型資料的指標變數。0 1 2 3 4 int 結論 指標...

C語言指標 指標與陣列

1 指標與一維陣列 2 指標與二維陣列 3 指標陣列與陣列指標 指標裡面最難的一種就是指標與陣列了,對於指標和二維陣列來說這裡面的關係比較複雜。牽涉到編譯器的原理和編譯過程。1 指標與一維陣列 指標是指向乙個記憶體的位址,一維陣列的陣列名代表一塊記憶體 這個陣列 的首位址,和陣列首元素的位址一樣,但...