只有当数组名作为函数的形参是,这个两个数组就共占同一段内存单元,在存储空间上完全重合。因为数组名实质上是常指针,即便它作为参数,它指向地址是不会改变的(传参的时候实际上是临时拷贝了一份指针,但是指向的地址不变),所以就共占一段内存单元(指针指向的那块内存)。
追问
-
所以这个是双向传递?数组大小可以不一样吗。为什么
回答
-
其实就是同一个数组啊,大小肯定一样的。举例说明吧:例如主程序有个数组int a[10];然后你的主程序里调用子函数test(a);这个test子函数里的a就是形参,他是数组名作为函数的形参。这个时候其实是地址传递,两个数组就共占同一段内存单元,在存储空间上完全重合。
-