C++ 答案怎么可能是433?
这个密码的答案是433。这怎么可能。我想答案是273C++ 答案怎么可能是433?,c++,C++,这个密码的答案是433。这怎么可能。我想答案是273 int x(int &a,int &b) { a=3; b=4; return a; } int main() { int a=2; int b=7; int c=x(b,a); cout<<a<<b<<c; } intx(int&a,int&b) { a=3; b=4; 返回a; } int main() { INTA=2; in
int x(int &a,int &b)
{
a=3;
b=4;
return a;
}
int main()
{
int a=2;
int b=7;
int c=x(b,a);
cout<<a<<b<<c;
}
intx(int&a,int&b)
{
a=3;
b=4;
返回a;
}
int main()
{
INTA=2;
int b=7;
int c=x(b,a);
cout您将引用传递给x方法,而不是值的副本,因此在调用方法a和b后将发生变化。这就是结果为433的原因。在函数中,c
被分配值3,a
被分配值4,b
被分配值3
。请注意,通过编写代码时,函数中的参数a
实际上是main中的b
,反之亦然。如果您一步一步地遵循函数,注释引用main中的变量,则会发生以下情况:
int x(int &a,int &b) { // note: pass-by-reference !
a=3; // b = 3
b=4; // a = 4
return a; // return 3
}
c = x(b,a); // c = 3
cout << a << b << c; // prints 433
intx(int&a,int&b){//注意:通过引用传递!
a=3;//b=3
b=4;//a=4
返回a;//返回3
}
c=x(b,a);//c=3
cout将输出设置为433
的原因是
为了避免您混淆,我将函数x
的参数更改为inA
和inB
int x(int &inA,int &inB)
{
inA=3;
inB=4;
return inA;
}
int main()
{
int a=2;
int b=7;
int c=x(b,a);
cout<<a<<b<<c;
}
intx(int&inA,int&inB)
{
inA=3;
inB=4;
返回inA;
}
int main()
{
INTA=2;
int b=7;
int c=x(b,a);
coutit的mindscrew代码在不同的名称空间中交换两个变量。只需按照执行/打印值进行操作。顺便说一句,你的预期答案听起来好像不知道“通过引用传递”是什么意思。如果是这样,用谷歌搜索它;)函数x
中的a
与main中的a
不同de>。将main
中的两个a
s更改为a1
,将main
中的两个b
s更改为b1
,事情就会更清楚。