這三個口述的解釋中第三個最簡捷, 但是也最模糊, 根本沒提到究竟要如何來使用 sum 這個變數, 這種打迷糊仗的說法任何人不能說它是錯的;
第二個解釋若是深入地去看會有一點問題, 但是一般來講如果 sum 這個變數內存放的是整數資料的話 (例如: sum=10;) 那麼在使用 sum 這個變數內存放的資料時 (例如: average = sum/total;) sum 內的資料當然是整數, 以上例來說的確是這樣子的, 可是觀念上卻是錯的, 首先程式在執行時資料的型態 (是整數還是浮點數還是字元) 不是資料的屬性, 而是程式解讀資料的方法, 就好像數字串 1270 到底是十進位的 1270 還是八進位的 696 還是十六進位的 472, 端看你如何去解釋它。 CPU 在使用一個變數內儲存的資料時也有類似的狀況, 等到你學到指標的時候我們可以示範如何在一個整數變數中放一個浮點數、 或是如何把一個字元當作是整數在使用...。
第一個解釋其實是由變數的用法衍生出來的操作型定義, 涵蓋了變數的兩種基本用法:
上面這幾個敘述其實相當於
請注意:
為什麼不是和 (float) x * 1.5 完全一樣呢?
很簡單,因為 C 程式中的 * 號只有兩種,
一種是整數的,一種是倍精準的浮點數的。
例:
float x=1.0;
printf("%f %x %d\n",x,x,x);
例如: int x; x = 15.5;
例如: int x; x = x * 1.5;
例如:
回
上一層
回
程式設計課程
首頁
by Pei-yih Ting
E-mail: pyting@cs.ntou.edu.tw