C語言中型別轉化的原理

2021-10-07 17:11:59 字數 1612 閱讀 6499

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...