看板 C_and_CPP 關於我們 聯絡資訊
各位好 ... 又有個問題想來請教各位了 老師今天說到 int ... 也是個很困惑的狀況下 int x = 4, float f = 2.9f, x int 4 x+f float 6.9f x+3.0 double 5.9 3L + f float 5.9f 3L + (int)f long 5L 我不知道什麼時候是 int, float, double, long ... 有什麼不一樣? 關於數字部分 ... 我不懂 為什麼 x + 3.0 會變成5.9f 整個開始有點困惑 ... 我知道要問老師... 但是這老師 ... 讓我很寒心-.- 另外他今天又有提到什麼 - - x 還有 + + x 或者 x + + 如果 int x = 3 那有什麼不一樣的狀況會發生? 我連google找文章來看都不知道要怎麼找 請各位幫忙我解惑一下吧! 感謝... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 192.64.1.242
bill42362:有用課本嗎? @@" 04/21 01:27
softwind:變數宣告就是立即定義變數 定義變數就是在記憶體中挖個洞 04/21 01:40
softwind:int挖4bytes(for 32bits target) double一律是挖8bytes 04/21 01:41
legnaleurc:我覺得他是不明白 int 和 float 的差異 04/21 01:42
softwind:兩個蘿蔔坑不一樣大 怎麼相加? 把他們變一樣大摟~ 04/21 01:43
softwind:x是int在mem中長成 0000 0000 0000 0004 04/21 01:46
softwind:f是float會長成...喔 請用VC一步一步追 反正長的不一樣 04/21 01:47
softwind:你把 float轉int 必掉精準度 int轉float有機會保留 04/21 01:48
softwind:把int轉成float 和另一個float相加 是比較優先的作法~ 04/21 01:49
softwind:再來要看立即值 3L 表示 這個3要長成long的格式 04/21 01:50
softwind:2.9f 表示這個2.9要先轉成float格式再compile 04/21 01:52
softwind:3.0 後面都沒有寫任何記號 compiler看到小數點預設用 04/21 01:53
softwind:double下去編譯~ 04/21 01:53
purpose:- - x 是做兩次轉成負數,但我想你大概是要扯 x++ - --x 04/21 01:57
purpose:有空白有差 04/21 01:57
peacedove:我猜是f+3.0 04/21 02:24
dream0127uk:抱歉 ... 如同樓上所說 ...是f ... 我筆記也抄x ... 04/21 07:22
dream0127uk:我跟同學對過 ... 我手殘跟眼殘... 抄錯 04/21 07:23