數值的類型分高低嗎?
C語言算術表達式的計算,在計算過程中,每一步計算所得結果的數據類型由參與運算的運算對象決定,相同數據類型的兩個對象運算,結果數據類型不變,不同數據類型的運算對象進行運算,結果的數據類型由高精度的運算對象決定。
精度的高低:double>float>int需要注意的是,數據類型的轉換是在計算過程中逐步進行的,整個表達式結果的數據類型一定與表達式中出現的精度最高的數據相同,但是具體得到數據值是逐步得到的,例如:int x=1,y=3; double k=1573.267; x / y * k這個表達式計算結果的數據類型是double, 計算結果的答案是 0.
0因為在第一步 x/y 的計算中 結果是一個整型數據 0第二步計算 0 * 1573.267 結果是一個double類型的數據,但數值是0.
0也就是說,算術表達式計算結果的數據類型與運算的優先級沒有關系,一定具有表達式中精度最高的數據類型,但是具體得到數據結果數值,與優先級可就有關系啦。