当数组作为函数参数时传递的是地址,而地址是指针类型,在当前环境下占8字节。
#include <stdio.h> int myArr(int arr[]); int main(){ int arr1[3]={1,2,3}; int arr2[2]={1,2}; int num=myArr(arr1); printf("%d,%lu\n",num,sizeof(arr1)); int num1=myArr(arr2); printf("---%d,---%lu\n",num1,sizeof(arr2)); /*即便是数组长度发生变化,打印字节数仍是8,因为当数组作为函数参数时传递的是地址,而地址是指针类型,在当前环境下占8字节。 */ return 0; } int myArr(int arr[]){ return sizeof(arr); }
|