簡體   English   中英

cout十六進制后引用的變量不同

[英]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?

因為190x13 ,所以您告訴流以十六進制輸出數字。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM