精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

強制類型轉換是把變量從一種類型轉換為另一種數據類型

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-11-12 14:59 ? 次閱讀

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

(type_name) expression

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

#includeintmain()

{ intsum = 17, count = 5;

doublemean; mean = (double)sum / count;

printf("Value of mean : %f ", mean); }

當上面的代碼被編譯和執行時,它會產生下列結果:

Value of mean :3.400000

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

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

整數提升

整數提升是指把小于int或unsigned int的整數類型轉換為int或unsigned int的過程。請看下面的實例,在 int 中添加一個字符:

#includeintmain()

{ inti = 17;

charc = 'c'; /* ascii 值是 99 */ intsum; sum = i + c;

printf("Value of sum : %d ", sum); }

當上面的代碼被編譯和執行時,它會產生下列結果:

Value of sum :116

在這里,sum 的值為 116,因為編譯器進行了整數提升,在執行實際加法運算時,把 'c' 的值轉換為對應的 ascii 值。

常用的算術轉換

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

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

#includeintmain(){ inti = 17;

charc = 'c'; /* ascii 值是 99 */ floatsum; sum = i + c;

printf("Value of sum : %f ", sum); }

當上面的代碼被編譯和執行時,它會產生下列結果:

Value of sum :116.000000

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7600

    瀏覽量

    136227
  • 編譯器
    +關注

    關注

    1

    文章

    1618

    瀏覽量

    49054

原文標題:C語言中的強制類型轉換

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    GaussDB 數據類型介紹

    進行數據類型轉換,以滿足不同的需求。本文將以示例的形式羅列并介紹些常見的數據類型轉換方法等。? 數據類
    的頭像 發表于 06-05 16:40 ?1620次閱讀
    GaussDB <b class='flag-5'>數據類型</b>介紹

    JAVA語言的數據類型轉換

    JAVA語言的數據類型轉換很多場合需要用到類型轉換。例如,要把個整型變量作為字符型
    發表于 12-06 00:30

    請問使用強制數據類型轉換函數的時候,數據類型type端該如何設置,才能使數據成功轉換類型

    本帖最后由 只耳朵怪 于 2018-6-26 08:51 編輯 使用強制數據類型轉換函數的時候,數據類型type端該如何設置,才能使
    發表于 06-25 20:33

    基礎:stateflow中變量強制類型轉換

    使用:例:我定義了變量speed作為輸出,某時刻指定speed=0,當我speed改為uint8類型,就報錯誤,找了陣沒找到方法,就
    發表于 10-29 10:42

    Verilog 變量聲明與數據類型

    Verilog 變量聲明與數據類型Verilog語法中最基本的數據類型有 線網(wire),寄存器(reg)和整數(integer)三種類型
    發表于 08-10 14:01

    Windows -編程-數據類型

    驅動開發外包請記住,Rust 是一種靜態類型語言,這意味著它必須在編譯時知道所有變量類型。編譯器通常可以根據值以及我們如何使用它來推斷我們想要使用的
    發表于 08-24 14:30

    重視變量數據類型

    不管在什么語言中,定義變量時必然要在內存中開辟個相應大小的空間來存儲該變量。不同的數據類型在內存所占的空間大小不同,其所能表示的
    發表于 01-13 15:05 ?1次下載
    重視<b class='flag-5'>變量</b>的<b class='flag-5'>數據類型</b>

    SystemVerilog中$cast的應用

    SystemVerilog casting意味著將一種數據類型轉換為另一種數據類型。在將變量賦值給
    的頭像 發表于 10-17 14:35 ?2794次閱讀

    什么是數據類型轉換

    常用的3種數據類型:1、Python數據類型一種:字符串(str)。 2、Python數據類型第二:整數(int)。 3、Pytho
    的頭像 發表于 02-23 15:21 ?1748次閱讀

    什么是數據類型轉換

    數據類型轉換就是將數據變量、數值、表達式的結果等)從一種類型轉換為
    的頭像 發表于 02-27 15:04 ?1369次閱讀
    什么是<b class='flag-5'>數據類型</b><b class='flag-5'>轉換</b>

    Verilog最常用的2種數據類型

    Verilog 最常用的 2 種數據類型就是線網(wire)與寄存器(reg),其余類型可以理解為這兩種數據類型的擴展或輔助。
    的頭像 發表于 05-29 16:27 ?2210次閱讀
    Verilog最常用的2<b class='flag-5'>種數據類型</b>

    PLC變量數據類型整理

    BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT?和UDINT。 注意,當較長的數據類型轉換為較短的數據類型時,會丟失高位信息
    發表于 09-19 12:19 ?4004次閱讀
    PLC<b class='flag-5'>變量</b>的<b class='flag-5'>數據類型</b>整理

    Redis的數據類型有哪些

    用的一種數據類型,普通的key- value 存儲都可以歸為此類。其中Value既可以是數字也可以是字符串。使用場景:常規key-value緩存應用。常規計數: 微博數, 粉絲數。 2、Hash:Hash 是個鍵值(
    的頭像 發表于 10-09 10:51 ?766次閱讀

    redis的五種數據類型

    Redis是一種高性能的內存數據庫,常用于緩存、任務隊列、分布式鎖等場景。它提供了多種數據類型來滿足各種不同的需求,包括字符串(string)、哈希(hash)、列表(list)、集合(set
    的頭像 發表于 11-16 11:06 ?605次閱讀

    C語言如何掌握強制類型轉換的精髓

    強制類型轉換變量從一種類型轉換為
    的頭像 發表于 02-26 11:00 ?483次閱讀
    C語言如何掌握<b class='flag-5'>強制</b><b class='flag-5'>類型</b><b class='flag-5'>轉換</b>的精髓