我不知道怎么问,但我尽我所能;
只需
int a = 19;
int& b=a;
cout<<b<<endl; //Output : 19
但现在输出在带有十六进制的cout之后是不同的
int a = 19;
int& b=a;
cout<<hex<<&a<<endl; //0031F788
cout<<b<<endl; //Output : 13
那么为什么最后一次输出是13?
答案 0 :(得分:5)
因为19
是0x13
,并且您告诉流以十六进制输出数字。
hex
是“粘性的”,这意味着它在流对象上保持有效,除非你另有说法,所以你应该在完成它之后流dec
:
#include <iostream>
using namespace std;
int main()
{
int a = 19;
int& b = a;
cout << hex << &a << dec << endl;
cout << b << endl;
}
答案 1 :(得分:3)
因为流基设置为十六进制,所以从不回到十进制。
cout<<hex<<&a<<dec<<endl; // back to dec immediately, as it's done usually.