-4
#include<iostream>
int fun(int &x,int y=10)
{
if(x%y==0)
return (++x);
else
return (y--);
}
int main()
{
int p=10,q=13;
q=fun(p,q);
cout<<p<<q<<endl;
q=fun(q);
cout<<p<<q<<endl;
q=fun(p);
cout<<p<<q<<endl;
return 0;
}
如图所示的输出如下:如何手动跟踪C++程序?
1013
1010
1111
但是,当我设法解决它使用笔和纸,我卡住了。请告诉我如何达到正确的输出,以保持我的概念清晰。
q = 10如何在第二次调用中.q通过引用传递,但未在函数中修改定义。是因为y--正在返回10吗? –
这是因为在第二次调用中我们不传递任何第二个参数,所以相应地使用函数定义中的缺省值。 –
谢谢@JaspreetSingh。帮助:) –