void printf_array(int *a, int length);
int main(int argc, char *argv[])
{
int b[10] = {2,3,5,1,4,7,6,8,9,0};
qDebug() << "-----"<<sizeof(b)/sizeof(int); //可以得到数组"b"的大小。此处是10
printf_array(b, 10);
return 1;
}
void printf_array(int *a, int length)
{
qDebug() << sizeof(a); //只能获得数组类型的大小,此处是4
}
因此只有在定义的地方使用sizeof才能获得正确大小,通过传递指针,只能获得指针所占空间大小