我知道以下有关参考资料
例如。 int &ref=x;
然后ref和x是内存中相同位置的名称。
与指针不同,内存不会被分配用于参考。
我正在使用我成功编写的引用在C ++中编写一个简单的交换程序。
然后我决定尝试当返回引用的函数是表达式的LHS时会发生什么,现在我无法预测下面代码的输出。
#include<iostream.h>
int & swap(int &,int &); //function returns reference
void main()
{
int x=10,y=20;
int &ref1=x,&ref2=y;
swap(ref1,ref2)=x; //what happens here?
cout<<x<<y;
}
int & swap(int &ref1,int &ref2)
{
int temp;
temp=ref1; //swap
ref1=ref2; //code
ref2=temp; //here
return ref2; //tried out this(has nothing to do with swapping)
}
O / P 20 20
答案 0 :(得分:1)
有两种可能的结果:
这取决于在左侧调用x
之前或之后是否读取了右侧的swap
。
该标准不会禁止发生哪种情况,只是它们不是交错的。