3.討論
一般形式:(型別名)(表示式)
例:
double x =
2.1, y-
=1.2;(
int)
(x +y)
;//3
(int
)x + y;
(double)(
3/2)
;(int
)3.6
;//3
不同資料型別資料混合運算,先轉換為同一型別**換按資料長度增加的方向進行,以保證精度不降低。),再進行運算;
資料型別級別(從低到高排列):
charvoid foo(void)
int main()
賦值號兩邊量的資料型別不同時,賦值號右邊量的型別將轉換為左邊變數量的型別。(注:賦值號左邊只能是變數)
a.小資料賦給大變數
不會造成資料丟失,系統為了保證資料的完整性,還提供了符號擴充行為(若符號位為0,高位全部補0;若符號位為1.高位全部補1)。
#include
intmain()
b.大資料賦給小變數
會發生截斷行為,造成資料丟失。
#include
intmain()
``
輸出的轉換成指定的輸出格式
輸出型別轉換規則:
a.printf把char、short提公升為int型,在傳給printf
b.float提公升到double型別再傳給printf
#include
intmain()
函式實參和形參型別需保持一致不做討論。一般函式的形參和函式返回值型別不一致,函式形參的型別會轉為函式返回值的型別。
#include
intfoo
(double x,
double y)
intmain()
#include
#include
intmain()
printf
("%d\n"
,strlen
(a))
;return0;
}
執行結果:255
strlen函式返回的是字串的個數,不包括』\0』結束符。
#include
intmain()
test;
test t;
t.a =1;
//01
t.b =3;
//11
t.c =1;
//1printf
("%d"
,t.a)
;printf
("%d"
,t.b)
;printf
("%d"
,t.c)
;printf
("\n");
return0;
}
執行結果:1-1
-1
C語言中的資料型別轉化
不得不說在微控制器c語言程式設計中,資料型別轉化是乙個不得不面對的問題,尤其是ad轉化,lcd液晶顯示,都需要使用型別轉化。比如將微控制器採集到的乙個小數顯示到lcd1602上去,那麼必須將小數轉化為乙個乙個的整數,再將它轉化為字元,最終才能正常顯示。對待此類問題,需要深刻的了解c語言的資料型別轉化...
C語言中的資料型別的自動轉化
1.算術表示式中,低型別轉換成高型別 2.賦值表示式,右邊表示式的值轉換為左邊變數的型別,並賦值給它 3.函式呼叫引數傳遞時,系統將實參轉換為形參的型別後,賦給形參 4.函式有返回值,系統將返回表示式型別轉換為返回值型別,賦值給呼叫函式 1.字元必須先轉換為整數 2.short型轉換為int型 3....
C語言中0 0 0 NULL以及型別轉化
0 0 null都是三種0值,它們在數字上是完全一樣的,而且在記憶體中存的都是二進位制0。所以,它們的值是一樣的,只不過表現的形式不一樣,也就是它們的型別是不同的 0在整形中表示數字0,在字元中 0 表示乙個字元它的ascii碼值為48,0 是乙個字元,表示字串結束,在ascii中的值為0 null...