我不知道怎么问,但我尽力了;
简单地
int a = 19;
int& b=a;
cout<<b<<endl; //Output : 19
但现在输出在 cout 与 hex 之后有所不同
int a = 19;
int& b=a;
cout<<hex<<&a<<endl; //0031F788
cout<<b<<endl; //Output : 13
那么为什么最后一个输出是 13 呢?
我不知道怎么问,但我尽力了;
简单地
int a = 19;
int& b=a;
cout<<b<<endl; //Output : 19
但现在输出在 cout 与 hex 之后有所不同
int a = 19;
int& b=a;
cout<<hex<<&a<<endl; //0031F788
cout<<b<<endl; //Output : 13
那么为什么最后一个输出是 13 呢?
因为19
is 0x13
,并且您告诉流以十六进制输出数字。
hex
是“粘性的”,这意味着它在流对象上保持有效,直到你另有说明,所以dec
当你完成它时你应该流式传输:
#include <iostream>
using namespace std;
int main()
{
int a = 19;
int& b = a;
cout << hex << &a << dec << endl;
cout << b << endl;
}
因为流基数设置为十六进制,并且永远不会回到十进制。
cout<<hex<<&a<<dec<<endl; // back to dec immediately, as it's done usually.