c++ primer讀書筆記一

先搞清楚little_endian和big_endian,前者是指數據的高位字節存放在內存的高位地址中,低位字節存放到低位地址中,後者則相反。

1)cout<<'abc';輸出是一整型值;2)char  c='abc';cout<<c;輸出是c(在little_endian下)。

原因如下:

1)前者等價於int i='abc';cout<<i;

二進制:a:01100001 b:01100010 c:01100011

內存存放:(內存地址假設從80開始)

80:01100011 //c

81:01100010 //b

82:01100001 //a

83:00000000 //int型數據佔32位 不足補零。

上面的內存內容表示:00000000 01100001 01100010 01100011  即:6382179

 

2)後者和1)很相似。

當字符字面量包含多個單字節字符或者包含了不能夠用char表示的字符時(如漢字),則改字面量的整型值爲implementation_defined。即1)中所說。所以從6382179轉換爲char,截取低位8bit即:01100011 即:c。

 

 

 

 

 

 

 

 

 

 

 

 

 

發佈了24 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章