[英]referenced variable different after cout hex
我不知道該怎么問,但我會盡力而為。
只是
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?
因為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;
}
因為流基數設置為十六進制,所以永遠不要返回十進制。
cout<<hex<<&a<<dec<<endl; // back to dec immediately, as it's done usually.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.