強制類型轉換是把變量從一種類型轉換爲另外一種數據類型。例如,若是你想存儲一個 long 類型的值到一個簡單的整型中,你須要把 long 類型強制轉換爲 int 類型。你可使用強制類型轉換運算符來把值顯式地從一種類型轉換爲另外一種類型,以下所示:程序員
(type_name) expressionexpress
請看下面的實例,使用強制類型轉換運算符把一個整數變量除以另外一個整數變量,獲得一個浮點數:編程
實例:編程語言
#include <stdio.h>學習
int main()設計
{blog
int sum = 17, count = 5;遊戲
double mean;ci
mean = (double) sum / count;開發
printf("Value of mean : %f\n", mean );
}
當上面的代碼被編譯和執行時,它會產生下列結果:
Value of mean :3.400000
這裏要注意的是強制類型轉換運算符的優先級大於除法,所以sum的值首先被轉換爲double型,而後除以 count,獲得一個類型爲 double 的值。
類型轉換能夠是隱式的,由編譯器自動執行,也能夠是顯式的,經過使用強制類型轉換運算符來指定。在編程時,有須要類型轉換的時候都用上強制類型轉換運算符,是一種良好的編程習慣。
整數提高
整數提高是指把小於int或unsigned int的整數類型轉換爲int或unsigned int 的過程。請看下面的實例,在 int 中添加一個字符:
實例:
#include <stdio.h>
int main()
{
int i = 17;
char c = 'c'; /* ascii 值是 99 */
int sum;
sum = i + c;
printf("Value of sum : %d\n", sum );
}
當上面的代碼被編譯和執行時,它會產生下列結果:
Value of sum :116
在這裏,sum 的值爲 116,由於編譯器進行了整數提高,在執行實際加法運算時,把 'c' 的值轉換爲對應的 ascii 值。
經常使用的算術轉換
經常使用的算術轉換是隱式地把值強制轉換爲相同的類型。編譯器首先執行整數提高,若是操做數類型不一樣,則它們會被轉換爲下列層次中出現的最高層次的類型:
經常使用的算術轉換不適用於賦值運算符、邏輯運算符 && 和 ||。讓咱們看看下面的實例來理解這個概念:
#include <stdio.h>
int main()
{
int i = 17;
char c = 'c'; /* ascii 值是 99 */
float sum;
sum = i + c;
printf("Value of sum : %f\n", sum );
}
當上面的代碼被編譯和執行時,它會產生下列結果:
Value of sum :116.000000
在這裏,c 首先被轉換爲整數,可是因爲最後的值是 float 型的,因此會應用經常使用的算術轉換,編譯器會把 i 和 c 轉換爲浮點型,並把它們相加獲得一個浮點數。
若是你也想成爲程序員,想要快速掌握編程,趕忙關注小編加入學習企鵝圈子吧!
裏面有資深專業軟件開發工程師,在線解答你的全部疑惑~編程語言入門「so easy」
免費學習資料: