首先,X是5。当foo()称,x的值(5)是通过变量y在foo()。Y被赋值为6,然后销毁。x的值是不变的,即使你改变了。
按值传递的优势:
按值传递的参数可以是变量(如X),文字(如6),或表达(如x + 1)。
争论是没用的功能被改变,以防止副作用。
按值传递的缺点:
复制大型结构或类可以花很多时间去复制,这可能会导致性能下降,特别是如果函数调用许多次。
在大多数情况下,按值传递是通过函数的参数的最佳方法是灵活和安全。
using namespace std;
cout << "y = " << y << endl;
y = 6;
cout << "y = " << y << endl;
} // y is destroyed here
int main()
{
using namespace std;
int x = 5;
cout << "x = " << x << endl;
foo(x);
cout << "x = " << x << endl;
return 0;
}