筆記 不同資料間的混合運算

2021-07-23 22:07:38 字數 1276 閱讀 9971

初始化不是在編譯階段完成的(靜態儲存變數和外部變數的初始化是在編譯階段完成)

而是在程式執行時執行本語句時賦初值的,相當於乙個賦值語句。例如:

int a=3

; 相當於:

int a

;a=3

; 又如:

int a, b, c=5

; 相當於:

int a, b, c;

c=5;

整型(包括int、short、long)和浮點型(包括float、double)可以混合運算。

字元型資料可以與整型通用,因此,整型、浮點型、字元型資料間可以混合運算。

例如: 10+』a』+1.5-8765.1234*』b』

//最後表示式的型別是double型別 格式申明符:lf

規定:在進行運算時,不同型別的資料要先轉換成同一型別,然後進行運算。轉換的規則按下圖所示。

說明:

1. 運算前,char和short型別的資料強制轉換成int型別

2. 運算前,float型別的資料強制轉換成double型別(有效位被擴大,運算時精度提高)

3. 從下往上,表示資料資料轉換的優先順序。

比如:int 和 doubule 運算時統一將它們的資料型別轉換成double

例題:

求下面算術表示式的值

(1)x+a%3

*(int)(x+y)%2/4,設x=2.5, a=7, y=4.7

//先算(x+y) = 7.2 強制轉換後 7

// * % 優先順序相同,算數運算子的結核性:從左到右

//a % 3 * 7 % 2 / 4 = 0

//x 為 float型,運算時先轉化為double。

// x + 0 = 2.5

//最後的格式型別為double型別,格式宣告符lf

(2)(float)(a+b)/2+(int)x%(

int)y,設a=2, b=3, x=3.5, y=2.5

//(float)(a+b)/2,運算後為double型別

//(int)x%(int)y = 1

+ 1 = 3.5 格式為double型,格式宣告符lf

不同資料型別混合運算及型別轉換

結果如下 wll wll linux code test cal a b unsigned short a 0 unsigned int b 0x12345678 a b printf b 0x x,a 0x x r n b,a 結果如下 wll wll linux code test cal b ...

C語言合運算不同型別之間的混合運算

運算的兩個數中有乙個數為float或double型,結果為double型,因為系統將所有的float型資料轉換為double型別資料再進行計算。如果int型與float或double型資料進行計算,先把int型和float型資料轉換為double資料再進行計算,結果為double型。字元 char ...

資料的布林值及不同型別資料間的比較運算

資料boolean 備註 console.log 1 true 備註 console.log 0 false 備註 0false false true 1true 數字的布林值為 true true false 10false 0 true 非空字串 布林值為 true true 1 true 字串...