不同于数组,结构是按值传递的。也就是说整个结构的内容都复制给了形参,即使某些成员数据是一个数组。
通过上面这个程序,我们发现在函数中修改形参的值对实参是没有影响的。并且通过输出变量s1和参数arg的成员数据name所在地址,我们可以知道两者是不相同的,即整个name数组也复制给了参数arg。
如果我们希望能在函数修改实参,则可以使用引用的方法。由于结构往往整合了许多的成员数据,它的数据量也绝对不可小觑。使用值传递虽然能够保护实参不被修改,但是却会或多或少地影响到程序的运行效率。所以,一般情况下,我们选择引用传递的方法。
转自: