1.参数传递:
每次调用函数时,都会重新创建该函数所有的形参,此时所传递的实参将会初始化对应的形参。形参的初始化与变量的初始化一样。
非引用类型:如果形参具有非引用类型,则复制实参的值。普通的非引用类型的参数通过复制对应的实参实现初始化。当用实参副本初始化形参时,函数并没有访问调用所传递的实参本身,因此不会修改实参的值。
引用类型:如果形参为引用类型(第 2.5 节),则它只是实参的别名。与所有引用一样,引用形参直接关联到其所绑定的对象,而并非这些对象的副本。
2.函数返回:
函数的返回值用于初始化在调用函数处创建的临时对象。用函数返回值初始化临时对象与用实参初始化形参的方法是一样的。
返回非引用:在调用函数的地方会将函数返回值复制给临时对象。
返回引用:当函数返回引用类型时,没有复制返回值。相反,返回的是对象本身。