C語言程式設計譚浩強版 四

2021-07-15 17:00:03 字數 1749 閱讀 1207

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 邏輯運算子 用於邏輯運算。包括...