国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

c語言如何進行強制類型轉(zhuǎn)換

青燈夜游
發(fā)布: 2023-01-04 11:04:03
原創(chuàng)
8612人瀏覽過
在c語言中,可以通過“(type_name) expression”語句來進行強制類型轉(zhuǎn)換,參數(shù)“type_name”表示新類型名稱,例如“(float)100”就是將int類型的數(shù)值100轉(zhuǎn)換為float類型。強制類型轉(zhuǎn)換是程序員明確提出的、需要通過特定格式的代碼來指明的一種類型轉(zhuǎn)換;在編程時,有需要類型轉(zhuǎn)換的時候都用上強制類型轉(zhuǎn)換運算符,是一種良好的編程習(xí)慣。

c語言如何進行強制類型轉(zhuǎn)換

本教程操作環(huán)境:windows7系統(tǒng)、c99版本、Dell G3電腦。

數(shù)據(jù)類型轉(zhuǎn)換就是將數(shù)據(jù)(變量、數(shù)值、表達式的結(jié)果等)從一種類型轉(zhuǎn)換為另一種類型。

c語言有兩種數(shù)據(jù)類型方式:

  • 自動類型轉(zhuǎn)換:就是編譯器默默地、隱式地、偷偷地進行的數(shù)據(jù)類型轉(zhuǎn)換,這種轉(zhuǎn)換不需要程序員干預(yù),會自動發(fā)生。

    立即學(xué)習(xí)C語言免費學(xué)習(xí)筆記(深入)”;

  • 強制類型轉(zhuǎn)換

下面我們就詳細(xì)了解一下c語言的強制類型轉(zhuǎn)換。

強制類型轉(zhuǎn)換

自動類型轉(zhuǎn)換是編譯器根據(jù)代碼的上下文環(huán)境自行判斷的結(jié)果,有時候并不是那么“智能”,不能滿足所有的需求。如果需要,程序員也可以自己在代碼中明確地提出要進行類型轉(zhuǎn)換,這稱為強制類型轉(zhuǎn)換。

自動類型轉(zhuǎn)換是編譯器默默地、隱式地進行的一種類型轉(zhuǎn)換,不需要在代碼中體現(xiàn)出來;強制類型轉(zhuǎn)換是程序員明確提出的、需要通過特定格式的代碼來指明的一種類型轉(zhuǎn)換。換句話說,自動類型轉(zhuǎn)換不需要程序員干預(yù),強制類型轉(zhuǎn)換必須有程序員干預(yù)。

強制類型轉(zhuǎn)換的格式為:

(type_name) expression
登錄后復(fù)制
  • type_name為新類型名稱

  • expression為表達式

例如:

(float) a;  //將變量 a 轉(zhuǎn)換為 float 類型
(int)(x+y);  //把表達式 x+y 的結(jié)果轉(zhuǎn)換為 int 整型
(float) 100;  //將數(shù)值 100(默認(rèn)為int類型)轉(zhuǎn)換為 float 類型
登錄后復(fù)制

請看下面的實例,使用強制類型轉(zhuǎn)換運算符把一個整數(shù)變量除以另一個整數(shù)變量,得到一個浮點數(shù):

#include <stdio.h>
 
int main()
{
   int sum = 17, count = 5;
   double mean;
 
   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );
 
}
登錄后復(fù)制

1.png

這里要注意的是強制類型轉(zhuǎn)換運算符的優(yōu)先級大于除法,因此?sum?的值首先被轉(zhuǎn)換為?double?型,然后除以 count,得到一個類型為 double 的值。

類型轉(zhuǎn)換可以是隱式的,由編譯器自動執(zhí)行,也可以是顯式的,通過使用強制類型轉(zhuǎn)換運算符來指定。在編程時,有需要類型轉(zhuǎn)換的時候都用上強制類型轉(zhuǎn)換運算符,是一種良好的編程習(xí)慣。

類型轉(zhuǎn)換只是臨時性的

無論是自動類型轉(zhuǎn)換還是強制類型轉(zhuǎn)換,都只是為了本次運算而進行的臨時性轉(zhuǎn)換,轉(zhuǎn)換的結(jié)果也會保存到臨時的內(nèi)存空間,不會改變數(shù)據(jù)本來的類型或者值。請看下面的例子:

#include <stdio.h>
int main(){
    double total = 400.8;  //總價
    int count = 5;  //數(shù)目
    double unit;  //單價
    int total_int = (int)total;
    unit = total / count;
    printf("total=%lf, total_int=%d, unit=%lf\n", total, total_int, unit);
    return 0;
}
登錄后復(fù)制

2.png

注意看第 6 行代碼,total 變量被轉(zhuǎn)換成了 int 類型才賦值給 total_int 變量,而這種轉(zhuǎn)換并未影響 total 變量本身的類型和值。如果 total 的值變了,那么 total 的輸出結(jié)果將變?yōu)?400.000000;如果 total 的類型變了,那么 unit 的輸出結(jié)果將變?yōu)?80.000000。

擴展知識:常用的算術(shù)轉(zhuǎn)換

常用的算術(shù)轉(zhuǎn)換是隱式地把值強制轉(zhuǎn)換為相同的類型。編譯器首先執(zhí)行整數(shù)提升,如果操作數(shù)類型不同,則它們會被轉(zhuǎn)換為下列層次中出現(xiàn)的最高層次的類型:

3.png

常用的算術(shù)轉(zhuǎn)換不適用于賦值運算符、邏輯運算符 && 和 ||。讓我們看看下面的實例來理解這個概念:

#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 );
 
}
登錄后復(fù)制

當(dāng)上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:

Value of sum : 116.000000
登錄后復(fù)制

在這里,c 首先被轉(zhuǎn)換為整數(shù),但是由于最后的值是 float 型的,所以會應(yīng)用常用的算術(shù)轉(zhuǎn)換,編譯器會把 i 和 c 轉(zhuǎn)換為浮點型,并把它們相加得到一個浮點數(shù)。

【相關(guān)推薦:C語言視頻教程、編程教學(xué)

以上就是c語言如何進行強制類型轉(zhuǎn)換的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!

C語言速學(xué)教程(入門到精通)
C語言速學(xué)教程(入門到精通)

C語言怎么學(xué)習(xí)?C語言怎么入門?C語言在哪學(xué)?C語言怎么學(xué)才快?不用擔(dān)心,這里為大家提供了C語言速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號