在C語言中,類型轉換分爲兩類:強制類型轉換和隱式類型轉換
強制類型轉換,就是程序員強制進行的:
eg:
short i=5;
float j=(float)i;
強制類型轉換的結果爲左值類型,但是需要注意不是所有強制類型都能成功。
eg:
struct node
{
int m;
int n;
};
int i=(int)p;
輸出:error C2440: “類型轉換”: 無法從“node”轉換爲“int”
隱式類型轉換:編譯器自動進行的轉換,需要主要的是,一般低類型到高類型是安全的如char轉爲int,而高類型到低類型則會截斷,如float型到int型。
在實際工程中,隱式類型一般會發生轉換的位置在:
算術運算中,如一個float類型與int類型做運算
賦值表達式,其值類型爲左值類型
函數調用,實參到形參
函數返回,return語句返回值轉換爲返回值類型。