
強制型別轉換是把變數從一種型別轉換為另一種資料型別,例如,如果你想存盤一個 long 型別的值到一個簡單的整型中,你需要把 long 型別強制轉換為 int 型別,你可以使用強制型別轉換運算子來把值顯式地從一種型別轉換為另一種型別,如下所示:
(type_name) expression
請看下面的實體,使用強制型別轉換運算子把一個整數變數除以另一個整數變數,得到一個浮點數:
實體:
#include <stdio.h>
int main()
{
int sum = 17, count = 5;
double mean;
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”
資料包含:編程入門、游戲編程、課程設計等,
免費學習書籍:

免費學習資料:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252428.html
標籤:C
