【发布时间】:2011-02-10 18:53:52
【问题描述】:
以下C程序:
int doStuff(int afm[]);
int main(){
int afm1[9] = {1,2,3,4,5,6,7,8,9}; //size=9
int afmLength = sizeof(afm1)/sizeof(int);
printf("main: Length Of Array=%d\n", afmLength); //9 OK
int k = doStuff(afm1);
system("PAUSE");
return 0;
}
int doStuff(int afm[]){
int afmLength = sizeof(afm)/sizeof(int);
printf("doStuff: Length Of Array=%d\n", afmLength); //1 WRONG
return 1;
}
产生以下输出:
main: Length Of Array=9
doStuff: Length Of Array=1
为什么在main中计算的数组大小正确,而在函数内部却是错误的?
【问题讨论】: