博客 / 詳情

返回

C語言中的算術類型轉換

1.尋常算數轉換

在C語言中,當不同類型的操作數參與到算術運算時,編譯器會將操作數轉換成同一類型,再運算。這一過程被稱為尋常算術轉換,由於這個過程我們程序員看不見,所以它也是一種隱式類型轉換(見整型提升

1.1尋常算數轉換的過程

1.1.1整型提升

若操作數是小整數類型(字節大小小於int),會自動進行整型提升,提升為int或unsigned int(見整型提升

1.1.2類型提升

和整型提升很像
若進行完第一步,操作數的類型仍然不同,按轉換等級從低到高,將低等級的類型統一轉換為操作數中存在的最高等級類型
轉換等級如下(由低到高)

int
unsigned int
long
unsigned long
long long
unsigned long long
float
double
long double

2.賦值轉換

賦值運算符的右側的表達式類型,會自動轉為左側的變量的類型,再賦值,這也是一種隱式轉換

3.函數傳參/返回

這也是隱式類型轉換

3.1傳參

若實參類型與形參類型不匹配,實參會自動轉為形參類型

3.2返回

函數返回值類型會自動轉為聲明的函數返回類型

4.強制類型轉換

通過強制類型轉換操作符主動指定轉換類型(見操作符),這是顯式類型轉換

user avatar prepared 頭像 ximinghui 頭像 codingembedded 頭像 hanhoudedengshanxie_66641de47decd 頭像 jueqiangqingtongsan 頭像 chuck1sn 頭像 MikeZhang 頭像 skysailstar 頭像 bin_60080bc5146e1 頭像 lazytimes 頭像 aphysia 頭像 wuhuacong 頭像
15 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.