func(char para[100])
{
void *p = malloc(100);
printf ("%d,%d\n",sizeof(para),sizeof(p));
}
输出结果为4,4
解析:
数组做函数参数时,sizeof 为普通指针大小
若直接对数组 sizeof 则结果为数组总长
vs2010实测:
sizeof in main: 100
sizeof in f: 4
1
2
3
4
5
6
7
8
|
void
f( char b[100]){ printf ( "sizeof in f: %d\n" ,
sizeof (b)); } int
main(){ char
p[100]; printf ( "sizeof in main: %d\n" ,
sizeof (p)); f(p); |