推 sunneo:最直接的答案是找reinterpret_cast的定義 03/31 21:43
→ QQ29:我找了一些地方 都沒有解釋為什麼需要加上&耶@@ 03/31 21:45
→ QQ29:大部分都是舉 <double *> (&n);這樣@@ 03/31 21:47
推 chrisdar:等價於 double d = *(reinterpret_cast<double *>(&n)); 03/31 21:54
推 chrisdar: double d = (double &)(n); 等價於 03/31 21:56
→ QQ29:請教樓上 (double &)到底是什麼意思! 好奇怪的感覺 03/31 22:00
推 avhacker:就是硬把 n 當 double 來解釋 03/31 22:18
推 avhacker:你可以把它想成這樣:*reinterpret_cast<double*>(&n) 03/31 22:21
→ avhacker:不過都是亂七八糟的寫法,沒什麼探討價值 03/31 22:22
→ QQ29:可是寫 <double>(n)就不給過 一定要加上&呢? 03/31 22:26
推 Fenikso:規定就是這樣 沒有理由的XD 03/31 22:27
→ QQ29:規定!! 原來如此... 03/31 23:01
推 littleshan:reinterpret_cast用在pointer或reference的轉型 03/31 23:08
→ QQ29:所以這裡不是 reference就要寫成像轉成ref唷? 03/31 23:31
推 sbrhsieh:如果你是要把 int promote/widen 成 double,要使用 04/01 00:09
→ sbrhsieh:static_cast, double d=static_cast<double>(n); 04/01 00:10
→ QQ29:你好 我測試一下n=9帶進去轉成float & 04/01 00:20
→ QQ29:我用手算 值怎麼會是1.267~~~*10^-44呢? 04/01 00:20
→ QQ29:就算解釋成 float 也不會是那個值耶... 04/01 00:20
推 chrisdar:int 4byte double 8byte 會摻垃圾進來 04/01 00:28
→ QQ29:可是我是用float去測試 很奇怪@@ 04/01 00:42