【揭祕】C語言型別轉換時發生了什麼?
阿新 • • 發佈:2020-07-20
ID:技術讓夢想更偉大
作者:李肖遙
連結:https://mp.weixin.qq.com/s/ZFf3imVaJgeesuhl1Kn9sQ
在C語言中,資料型別指的是用於宣告不同型別的變數或函式的一個廣泛的系統,我們常用的算術型別包括兩種型別:整數型別和浮點型別。那麼相互之間具體是怎麼轉化的呢?
## 瞭解一下型別轉換
不同資料型別的儲存大小和值範圍是不一樣的,程式在初始化的時候就已經設定了,例如:
```
int a = 9;
float b = 8.5;
```
a,b佔的位元組大小不一樣,這個我們應該都知道,在C語言中一個表示式允許不同型別的資料進行運算,例如:
```
int a = 9;
float b = 8.5,c;
c = a + b;
```
因為計算機硬體在進行算術操作時,要求各運算元的型別具有相同的儲存位數以及一樣的儲存方式,所以就出現了型別轉換。
對於某些型別的轉換,編譯器可以隱式地自動進行,這種轉換稱為**自動型別轉換**;
而有些型別轉換需要程式設計師顯式指明,那麼通常把這種轉換稱為**強制型別轉換**。
##自動型別轉換
自動轉換是在源型別和目標型別相容以及目標型別廣於源型別時發生一個型別到另一類的轉換。我們先來看一段程式碼
```
//vs2019
//來源:技術讓夢想更偉大
//作者:李肖遙
#