关于将数组传递给函数我有疑问.
请考虑以下代码段.
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]);
}
}
Run Code Online (Sandbox Code Playgroud)
传递数组只不过是传递第一个位置的地址.我应该传递上面的数组及其名称(数组的起始地址).我怀疑是因为[4]是一个自动变量,它应该在它从主函数出来时死掉它应该给出意想不到的结果(指针应该是悬空的).但它工作正常.
我对此非常困惑,请你把它清理干净.
即使我们通过一个单一的元素int a如f(&a),它不应该在函数f存在,如果它被声明为自动(在主函数的局部变量).
请清楚这一点.
| 归档时间: |
|
| 查看次数: |
304 次 |
| 最近记录: |