C++里cout输出的问题
在看C++primer的书,里面有个引用传递求x=3的立方的例子。我把这个cout<<refcube(x)<<endl<<x;输出27,3写成2行cout<<refcub...
在看C++primer的书,里面有个 引用传递 求x=3的立方的例子。
我把这个cout<<refcube(x)<<endl<<x; 输出 27,3
写成2行
cout<<refcube2(x)<<endl; 输出 27,27
cout<<x;
为什么x的输出不一样呢。书上用的2行,我想省就写了一行。 展开
我把这个cout<<refcube(x)<<endl<<x; 输出 27,3
写成2行
cout<<refcube2(x)<<endl; 输出 27,27
cout<<x;
为什么x的输出不一样呢。书上用的2行,我想省就写了一行。 展开
2013-09-30
展开全部
1、引用传递会改变参数的值:
所以调用refcube(x)后,小数会变成27,所以这不是引用的问题。
2、事实是参数传递的问题:函数参数是自右到左传递的:
所以:cout<<refcube(x)<<"=cube of"<<x<<"\n"; 中传入x时,还没有调用函数,x为3。
然后才调用了refcube(x),x才变成了27。
而cout<<refcube(x);
cout<<"=cube of"<<x<<"\n";调用则x传入在调用函数之后,所以是27
3、可以在:cout<<refcube(x)<<"=cube of"<<x<<"\n";后再次输出x看看,仍然为27
所以调用refcube(x)后,小数会变成27,所以这不是引用的问题。
2、事实是参数传递的问题:函数参数是自右到左传递的:
所以:cout<<refcube(x)<<"=cube of"<<x<<"\n"; 中传入x时,还没有调用函数,x为3。
然后才调用了refcube(x),x才变成了27。
而cout<<refcube(x);
cout<<"=cube of"<<x<<"\n";调用则x传入在调用函数之后,所以是27
3、可以在:cout<<refcube(x)<<"=cube of"<<x<<"\n";后再次输出x看看,仍然为27
展开全部
记得Printf()函数中的语句输出是右结合性,这里的COUT<<也具有右结合性
c程序算法
#include "iostream.h"
int main()
{int x=5,y;
y=++x;
cout<<y<<y++<<++y<<y++<<endl;
return 1;
}
答案是:9886
c程序算法
#include "iostream.h"
int main()
{int x=5,y;
y=++x;
cout<<y<<y++<<++y<<y++<<endl;
return 1;
}
答案是:9886
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
估计refcube2这个函数是引用传递的吧,八成在函数里对x进行了修改,然后还是引用传递的,所以实际的x也变化了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询