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

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

3天內(nèi)不再提示

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

單片機與嵌入式 ? 來源:單片機與嵌入式 ? 2024-02-26 11:00 ? 次閱讀

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

(type_name) expression

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

#include int main()

{ int sum = 17, count = 5;

double mean; mean = (double) sum / count;

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

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

Value of mean : 3.400000

6b06b9ce-d2c5-11ee-a297-92fbcf53809c.png

#include int main()

{ int i = 17;

char c = 'c'; /* ascii 值是 99 */ int sum; sum = i + c;

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

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

Value of sum : 116

6b2367f4-d2c5-11ee-a297-92fbcf53809c.png

6b34168a-d2c5-11ee-a297-92fbcf53809c.png

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

#include int main(){ int i = 17;

char c = 'c'; /* ascii 值是 99 */ float sum; sum = i + c;

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

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

Value of sum : 116.000000

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

審核編輯:黃飛

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

    關注

    180

    文章

    7614

    瀏覽量

    137249
  • 編譯器
    +關注

    關注

    1

    文章

    1639

    瀏覽量

    49197

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

文章出處:【微信號:單片機與嵌入式,微信公眾號:單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    學習C語言應從哪幾方面著手

    看了此文后,我想對于您學習此語言一定有很大的幫助,同時也能了知曉如何用最短的時間學會C語言以及掌握C語言
    發(fā)表于 07-26 14:48 ?783次閱讀

    C語言強制類型轉化

    為何要在這里提強制類型轉換呢,測試代碼可以看到編譯器會報很多警告,意思是告訴程序員數(shù)據(jù)類型不匹配,雖然并不影響程序的正確運行,但是很多警告總會讓人感到難受。因此為了告訴編譯器代碼這里沒
    的頭像 發(fā)表于 09-09 08:58 ?2339次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中<b class='flag-5'>強制</b><b class='flag-5'>類型</b>轉化

    C語言中的基本數(shù)據(jù)類型

    C語言是非常重要的一門程序設計語言,學好C語言再去學習其他編程語言將變得很輕松,因為大部分
    發(fā)表于 04-26 17:33 ?2059次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的基本數(shù)據(jù)<b class='flag-5'>類型</b>

    JAVA語言的數(shù)據(jù)類型轉換

    JAVA語言的數(shù)據(jù)類型轉換很多場合需要用到類型轉換。例如,要把一個整型變量作為字符型變量來使用,就需要使用
    發(fā)表于 12-06 00:30

    TCP中強制類型轉換

    這是完整程序第一個和第二個強制類型轉換都有什么用啊我加了顯示控件,但是顯示亂碼求指點~~~
    發(fā)表于 04-15 19:42

    跟著狄泰唐老師的C語言課程學習的筆記之類型轉換

    1.類型之間的轉換?C語言中的數(shù)據(jù)類型可以進行轉換A.強制
    發(fā)表于 05-22 15:49

    強制類型轉換問題

    本帖最后由 applevs 于 2017-5-24 23:03 編輯 char*強制轉換為short*后,每兩個字節(jié)組成一個新的short類型,由于電腦是小端存儲,低字節(jié)在前,所以組成的short數(shù)據(jù)是[1][0][3][
    發(fā)表于 05-24 22:44

    C語言指針必須要進行強制類型轉換

    進行后續(xù)的數(shù)據(jù)訪問,那么為什么不直接把右值指針的地址給左值指針,(正如我第一句所說的,都是四字節(jié)不會丟失數(shù)據(jù))而要進行強制類型轉換呢?而且疑問處的代碼去掉(char *),在VC++6.0還有多版的
    發(fā)表于 03-06 04:14

    C語言中int型強制類型轉換成short型的溢出問題怎么解決?

    如何判斷STM32編碼器模式中電機的正反轉?C語言中int型強制類型轉換成short型的溢出問題怎么解決?
    發(fā)表于 10-19 06:59

    C語言的數(shù)據(jù)基本類型分為哪幾種

    今天閑著無聊把書翻看一遍,收獲頗豐。目錄1、數(shù)據(jù)類型基本類型數(shù)據(jù)長度強制類型轉換bit強制
    發(fā)表于 02-25 06:35

    C程序的運行環(huán)境和C語言的數(shù)據(jù)類型

    ⒈ 實驗目的⑴ 了解在具體的語言環(huán)境下如何編輯、編譯、連接和運行一個C程序。⑵ 通過運行簡單的C程序,初步了解C源程序的特點。⑶ 掌握
    發(fā)表于 06-21 09:36 ?55次下載

    C語言精髓——指針詳解

    C語言精髓——指針詳解
    發(fā)表于 11-30 14:43 ?17次下載

    分析C語言到底需要掌握哪些知識以及怎樣去掌握

    C語言精髓點在哪? 學到多少東西才能夠達到做項目的標準?學習的時候需要注意哪些細節(jié)點?疑問太多以至于壓得自己喘不過氣來。小編從項目的角度分析C語言
    的頭像 發(fā)表于 01-29 10:16 ?5691次閱讀

    強制類型轉換是把變量從一種類型轉換為另一種數(shù)據(jù)類型

    類型轉換可以是隱式的,由編譯器自動執(zhí)行,也可以是顯式的,通過使用強制類型轉換運算符來指定。在編程時,有需要
    的頭像 發(fā)表于 11-12 14:59 ?9670次閱讀

    關于C語言中的強制類型轉換

    以下實例為STM32單片機使用寄存器進行操作的一個頭文件中的代碼因為直接對寄存器進行操作,也就是直接對地址中的數(shù)據(jù)進行操作,因為知道了寄存器所在的地址所以就強制把常量轉換為地址,然后對地址進行操作
    發(fā)表于 01-13 15:20 ?2次下載
    關于<b class='flag-5'>C</b><b class='flag-5'>語言</b>中的<b class='flag-5'>強制</b><b class='flag-5'>類型</b><b class='flag-5'>轉換</b>