我对将数组传递给函数有疑问。将数组传递给函数c
请考虑下面的代码片段。
void main()
{
int a[4]={10,20,30,40};
fun1(a);
}
void fun1(int a1[])
{
for(int i=0;i<4;i++)
{
printf("%d\n",a1[i]);
}
}
传递数组只是传递第一个地址的地址。 我应该通过上面的数组名称(数组的起始地址)。 我的疑问是,因为[4]是一个自动变量,它应该在主函数出来时死掉,并且它应该给出意想不到的结果(指针应该悬空)。 但它工作正常。
我对此很困惑,请你清除它。
即使我们将单个元素int a
作为f(&a)
传递,它也不应该存在于函数f中,如果它声明为自动的(主函数中的局部变量)。
请清除此。
如果有任何答案解决了您的问题,请将其标记为已接受。 – 2012-10-07 23:53:38