1. 程式人生 > >陣列作為形參退化為指標

陣列作為形參退化為指標

一個小程式進行驗證

#include<stdio.h>


void Sizeof(int arr[])
{
    printf("%d\n",sizeof(arr));
}

int main(void)
{
    int arr[] = {1,2,3,4,5};
    printf("傳入Sizeof()函式進行計算:\n");
    Sizeof(arr);
    printf("為傳入Sizeof()函式直接在主函式中進行計算:\n");
    printf("%d\n",sizeof(arr));
}

在程式碼中可以看到,主函式與Sizeof函式執行了同樣的計算。即計算陣列的大小,但是結果卻是始料未及的。
這裡寫圖片描述


出現這樣的結果其原因就是在函式中,當陣列作為形式引數進行傳參時,其意義發生了變化。將其解析為一個指標,而指標的大小為四個位元組。此時將陣列作為一個指標型別進行計算。