查找并编写以下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
仅作为副本接收,因此当本地副本更改时,原始副本不会。