C++中 实参值改变后形参的改变
intfun(intx,inty){returnx*y;}intmain(){intk=5;cout<<fun(k++,++k)<<endl;return0;}为什么输出...
int fun(int x,int y)
{
return x*y;
}
int main()
{
int k = 5;
cout << fun(k++,++k) << endl;
return 0;
}
为什么输出42? 展开
{
return x*y;
}
int main()
{
int k = 5;
cout << fun(k++,++k) << endl;
return 0;
}
为什么输出42? 展开
3个回答
展开全部
你没明白啥叫不能改变,或者说这个所谓的改变,是有语境的。
你在调用完sort后,打印一下xyz的值看看,而不要在sort函数里面打印。在sort函数里面打印的,其实还是传进去的参数值,而不是main中的xyz。
你在调用完sort后,打印一下xyz的值看看,而不要在sort函数里面打印。在sort函数里面打印的,其实还是传进去的参数值,而不是main中的xyz。
追问
???你回答的是什么,z哪里来的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将K值运算好以后传入函数,一个是6一个是7。函数返回42
更多追问追答
追问
7怎么来的?
追答
k不是自加了2次么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int fun(int x,int y)
{
printf("x=%d y=%d\n",x,y);
return x*y;
}
int main()
{
int k = 5;
printf("%d\n",fun(k++,++k));
//cout << fun(k++,++k) << endl;
return 0;
}
x=6 y=7
42
从运行结果来看的话,传给形参x的值是6,传给形参y的值是7,所以运行结果是42了。
更多追问追答
追问
为什么?参数值的传递不是从右到左吗?为什么y的值是7?
追答
参数值的传递怎么是从右到左呢?从运行结果来看的话,你这种观点显然是不成立的嘛!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询