这个输出是如何来的.解释(家庭作业帮助)



查找并编写以下C++程序代码的输出:注意:假设所有必需的头文件都已包含在程序中。

void Revert(int &Num, int Last=2)
{
 Last=(Last%2==0)?Last+1:Last-1;
 for(int C=1; C<=Last; C++)
 Num+=C;
}
void main()
{
 int A=20,B=4;
 Revert(A,B);
 cout<<A<<"&"<<B<<endl;
 B--;
 Revert(A,B);
 cout<<A<<"#"<<B<<endl;
 Revert(B);
 cout<<A<<"#"<<B<<endl;
}

答案:35&4

38#3

38#9

在第一个为什么 B 是 4 而不是 5。

因为该函数不做任何事情来更改B的值(即第二个参数(。因此,它将简单地输出它以前的样子。

更仔细地观察您的函数具有以下签名:

void Revert(int &Num, int Last=2)

第一个参数是一个引用,因此当您在函数中更改它时,它存储的值 (A( 将在原始位置更改。但是,第二个参数Last仅作为副本接收,因此当本地副本更改时,原始副本不会。

最新更新