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.強制類型轉換
通過強制類型轉換操作符主動指定轉換類型(見操作符),這是顯式類型轉換