1. 程式人生 > >陣列傳參時,到底是傳陣列的首地址,還是把整個陣列元素傳過去

陣列傳參時,到底是傳陣列的首地址,還是把整個陣列元素傳過去

#include<stdio.h>
void test1(int arr[ ])
{
    printf("%d\n", sizeof(arr));
}
void test2(int ch[ ])
{
    printf("%d\n", sizeof(ch));
}
int main()
{
    int arr[10] = { 0 };
    char ch[10] = { 0 };
    printf("%d\n", sizeof(arr));//40,裡面有10個元素,一個int佔四個位元組,在32位編譯器上(64位編譯器上為 上8個位元組)
    printf("%d\n", sizeof(ch));//10,裡面有10個元素,一個char佔一個位元組,在32位編譯器上
    test1(arr);//4,傳進去的為地址,所有資料型別的地址都為四個位元組
    test2(ch);//4,傳進去的為地址,所有資料型別的地址都為四個位元組
    return 0;
}