搜尋
  • 登入
  • 報名
密碼重置成功

關注您感興趣的項目並了解有關它們的最新消息

首頁 後端開發 C C 語言教程 C 強制型別轉換

C 強制型別轉換

收藏 205
閱讀 91682
更新時間 2016-09-11

強制型別轉換是把變數從一種型別轉換成另一種資料型別。例如,如果您想要儲存一個 long 類型的值到一個簡單的整型中,您需要把 long 類型強制轉換為 int 類型。您可以使用強制類型轉換運算子來把值明確地從一種類型轉換為另一種類型,如下所示:

(type_name) expression

請看下面的實例,使用強制類型轉換運算子把一個整數變數除以另一個整數變量,得到一個浮點數:

#include <stdio.h>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 的值。

型別轉換可以是隱式的,由編譯器自動執行,也可以是明確的,透過使用強制型別轉換運算子來指定。在程式設計時,有需要型別轉換的時候都用強制型別轉換運算符,是一種好的程式設計習慣。

整數提升

整數提升是指將小於intunsigned int 的整數型別轉換成intunsigned int 的過程。請看下面的實例,在int 中加入一個字元:

#include <stdio.h>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 值。

常用的算術轉換

常用的算術轉換是隱含地把值強制轉換為相同的型別。編譯器首先執行整數提升,如果運算元類型不同,則它們會轉換為下列層級中出現的最高層次的類型:

1056.png

常用的算術轉換不適用於賦值運算子、邏輯運算子&& 和||。讓我們看看下面的實例來理解這個概念:

#include <stdio.h>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 首先被轉換為整數,但由於最後的值是double 型的,所以會應用常用的算術轉換,編譯器會把i 和c 轉換為浮點型,並把它們相加得到一個浮點數。

熱AI工具
Undress AI Tool
Undress AI Tool

免費脫衣圖片

AI Clothes Remover
AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undresser.AI Undress
Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

Stock Market GPT
Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱門工具
記事本++7.3.1
記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版
SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1
禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6
Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版
SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)