簡體   English   中英

關於`std::cout << &std::hex << 123 << std::endl;`的問題

[英]Questions about `std::cout << &std::hex << 123 << std::endl;`

這是代碼片段

#include <iostream>

int main()
{
    std::cout << std::hex << 123 << std::endl;

    std::cout << &std::hex << 123 << std::endl;
}
  1. &std::hex是什么? 我認為它獲取了std::hex的地址。 地址將被打印出來。

  2. 這個代碼片段是否有任何潛在的問題,因為有人說獲取標准庫提供的 function 的地址是不好的

function 的名稱衰減為指向該 function 的指針。因此std::cout << std::hex使用 stream 插入器,該插入器采用指向 function 的指針,該 function 采用std::ios_base&並返回std::ios_base& stream 插入器簡單地調用 function。

Function 指針具有另一個特殊屬性:當您編寫&std::hex時,它的計算結果為 function 的地址。與&&std::hex&&&&std::hex等相同。它們都表示同一件事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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