1、对静态分配的数组和动态分配的数组分别使用sizeof获得其长度,结果是不一样的: int a[10]; 则sizeof(a)等于10*sizeof(int)。 int* a=(int*)malloc(10*sizeof(int));则sizeof(a)等于sizeof(int*)。 2、数组名作为函数的参数时 数组名作为函数的参数传递时,在函数内使用sizeof(a)(此处假设a为数组),结果都为指针的长度(无论a为静态数组还是动态数组),而非数组的实际长度。