#include "stdafx.h"
#include <iostream>
using namespace std;
void silly(int & a, int & b)
{
a=10;
b=20;
cout << a << "" << b << endl;
}
void main()
{
int z=30;
silly(z,z);
cout << z << endl;
system("Pause");
}
这个输出是:
2020 20
为什么有3个输出,为什么b会覆盖?
我问,因为这是家庭作业的一部分,我并不完全理解变量的传递,尤其是字符串/数组。
答案 0 :(得分:0)
您正在将z的引用传递给silly()函数。
当你在silly()中更改a或b(两个对z的引用)的值时,它会更改z的值。
所以,在这一行:
cout << a << "" << b << endl;
z的值是20,因此是输出。