需要理解的是,對乙個變數進行型別轉換,並不是修改這個變數的型別,而是建立了這個變數的拷貝,原本的資料型別是不變的,參與運算的是拷貝後的變數。
1、對於隱式轉換(即計算機自己完成的型別轉換)
對於兩個變數x,y之間的運算,若他們的型別相同,則計算結果型別相同,若兩者型別不同,則表示式的型別與綜合性最高的部分相同。綜合性排名如下(由低到高)
charshort
intlong
long
long
float
double
long
double
對於賦值時的轉換
注意:賦值時是等號右邊的型別向等號左邊的型別轉換,也就意味著,並不一定是型別的提公升,有可能是資料的降低(此時大多數編譯器會發出警告)
2、顯示轉換
int i;
(float) i;//拷貝i的值,拷貝值為float型
指標同理
C語言 有關記憶體的思考題
void getmemory char p void test void 請問執行test函式會有什麼樣的結果?程式編譯可以通過,執行中出現記憶體錯誤。因為getmemory不能傳遞動態記憶體,test函式中的str一直都是null。strcpy str,hello world 將由於str中沒有開...
C語言中的型別轉換
計算機進行算術運算時,通常要求運算元具有相同的位數 相同的儲存方式。而c語言支援在表示式中混合使用基本資料型別,因此需要在不同的資料型別之間進行轉換。在c語言中存在兩種型別的轉換,一種是隱式轉換,由編譯器自動處理轉換而無需程式開發人員介入,另一種是強制型別轉換 顯式轉換 需要程式開發人員使用強制轉換...
C語言中的型別轉換!
自動轉換發生在不同資料型別運算時,在編譯的時候自動完成 自動轉換遵循的規則就好比小盒子可以放進大盒子裡面一樣,下圖表示了型別自動轉換的規則。縮寫 ascii 英文全稱 american standard code for information interchange 美國資訊交換標準 是一種用於資...