一个形参和实参的问题,我实在搞不清楚,请大家帮帮忙。
很多地方都说“改变函数形参的值,不会改变对应实参的值”,可是我发现有很多实参改变了。比如:#include<stdio.h>
void func(int *a,int b[])
{
b[0]=*a+6;
}
void main()
{
int a,b[5];
a=0;b[0]=3;
func(&a,b);
printf("b[0]=%d\n",b[0]);
}
这里输出结果为b[0]=6,如果不改变,应该是b[0]=3啊
这是为什么?到底形参和实参在什么样的其情况下有什么样的关系?麻烦知道的说一下,我实在是搞不清楚。谢谢!