#include<stdio.h> int getArrSize(int array[]) { return sizeof(array)/sizeof(int); // 數組退化爲指針 } int main() { int arr[10]; int *p; p=arr; int sizeArr = sizeof(arr)/sizeof(int); // 計算數組元素個數 int sizePointer = sizeof(p)/sizeof(int*); int sizeDegeArray = getArrSize(arr); printf("Normal Array size:%d\n",sizeArr); printf("Pointer size:%d\n",sizePointer); printf("Degeneration Array size:%d\n",sizeDegeArray); return 0; }
Output :
Normal Array size:10
Pointer size:1
Degeneration Array size:1
數組作爲參數傳遞,將退化爲指針,同時,不要混淆 數組名 和指針的概念。因爲 sizeArr != sizePointer 。