3.6 變數賦初值
語言程式中可有多種方法為變數提供初值。本小節先介紹在作變數定義的同時給變數賦以
初值的方法。
這種方法稱為初始化。變數初始化不是在編譯階段完成的,而是在程式執行
時執行本函式時賦予初值的。
在變數定義中賦初值的一般形式為:
型別說明符變數1= 值1,變數2= 值2,……;
例如: int a=3;
int b,c=5;
float x=3.2,y=3f,z=0.75;
char ch1='k',ch2='p';
應注意,在定義中不允許連續賦值,如a=b=c=5是不合法的。
3.7 各類數值型資料之間的混合運算
變數的資料型別是可以轉換的。轉換的方法有兩種,一種是自動轉換,一種是強制轉換。
自動轉換遵循以下規則:
1) 、若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。
2)、轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時, 先把
int量轉成long型後再進行運算。
3) 、所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表示式,
也要先轉
換成double型,再作運算。
4) 、char型和short型參與運算時,必須先轉換成int型。
5) 、在賦值運算中,賦值號兩邊量的資料型別不同時,賦值號右邊量的型別將轉換為
左邊量的型別。如果右邊量的資料型別長度比左邊長時,將丟失一部分資料,這
樣會降低精度,
丟失的部分按四捨五入向前捨入。
下圖表示了型別自動轉換的規則:
#include/* 資料型別的自動轉換 */
int main(void)
本例中,計算s的時候需要將r和pi都轉換為double型,但是由於s是整型,所以輸出的
時候捨棄
小數部分,直接輸出整數78,不是四捨五入。
強制型別轉換
其一般形式為: (型別說明符) (表示式)
例如: (float) a 把a轉換為實型 (int)(x+y) 把x+y的結果轉換為整型
在使用強制轉換時應注意以下問題:
1) 、型別說明符和表示式都必須加括號(單個變數可以不加括號),如把(int)(x+y)寫成
(int)x+y則
成了把x轉換成int型之後再與y相加了。
2) 、無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變數的資料長度
進行的臨
時性轉換,而不改變資料說明時對該變數定義的型別。
下面我們舉個例子來說明一下強制轉換資料型別
#include/* 強制型別轉換 */
int main(void)
輸出結果為:(int) f = 5,f = 5.750000
本例表明,f雖強制轉為int型,但只在運算中起作用,是臨時的,而f本身的型別並
不改變。
因此,(int)f的值為5(刪去了小數)而f的值仍為5.75。
C語言程式設計譚浩強版 一
本章的一些概況這裡就不說了,直接進入細節的學習!3.1 c的資料型別 資料型別分為 基本型別 構造型別 指標型別 空型別 基本型別又分為 整型 字元型 實型 浮點型 又分為單精度型 雙精度型 列舉型別 構造型別又分為 陣列型別 結構體型別 共用體型別 3.2 常量和符號常量 在程式執行過程中,其值不...
C語言程式設計譚浩強版 三
3.5 字元型資料 3.5.1 字元常量 字元常量是用單引號括起來的乙個字元。例如 a b 都是合法字元常量。在 語言中,字元常量有以下特點 1 字元常量只能用單引號括起來,不能用雙引號或其它括號。2 字元常量只能是單個字元,不能是字串。3 字元可以是字符集中任意字元。但數字被定義為字元型之後就不能...
C語言程式設計譚浩強版 五
3.8 算術運算子和算術表示式 3.8.1 c運算子簡介 語言的運算子可分為以下幾類 1.算術運算子 用於各類數值運算。包括加 減 乘 除 求餘 或稱模運算,自增 自減 共七種。2 關係運算子 用於比較運算。包括大於 小於 等於 大於等於 小於等於 和不等於 六種。3 邏輯運算子 用於邏輯運算。包括...