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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

C語言如何掌握強(qiáng)制類型轉(zhuǎn)換的精髓

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

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

(type_name) expression

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

#include int main()

{ int sum = 17, count = 5;

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

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

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

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 ); }

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

Value of sum : 116

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

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

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

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

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

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

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

Value of sum : 116.000000

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

審核編輯:黃飛

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

    關(guān)注

    180

    文章

    7594

    瀏覽量

    135863
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1617

    瀏覽量

    49015

原文標(biāo)題:C語言中的強(qiáng)制類型轉(zhuǎn)換

文章出處:【微信號(hào):單片機(jī)與嵌入式,微信公眾號(hào):單片機(jī)與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    學(xué)習(xí)C語言應(yīng)從哪幾方面著手

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

    C語言強(qiáng)制類型轉(zhuǎn)化

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

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

    C語言是非常重要的一門程序設(shè)計(jì)語言,學(xué)好C語言再去學(xué)習(xí)其他編程語言將變得很輕松,因?yàn)榇蟛糠?/div>
    發(fā)表于 04-26 17:33 ?1952次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的基本數(shù)據(jù)<b class='flag-5'>類型</b>

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

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

    TCP中強(qiáng)制類型轉(zhuǎn)換

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

    跟著狄泰唐老師的C語言課程學(xué)習(xí)的筆記之類型轉(zhuǎn)換

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

    強(qiáng)制類型轉(zhuǎn)換問題

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

    C語言指針必須要進(jìn)行強(qiáng)制類型轉(zhuǎn)換?

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

    C語言中int型強(qiáng)制類型轉(zhuǎn)換成short型的溢出問題怎么解決?

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

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

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

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

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

    C語言精髓——指針詳解

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

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

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

    強(qiáng)制類型轉(zhuǎn)換是把變量從一種類型轉(zhuǎn)換為另一種數(shù)據(jù)類型

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

    關(guān)于C語言中的強(qiáng)制類型轉(zhuǎn)換

    以下實(shí)例為STM32單片機(jī)使用寄存器進(jìn)行操作的一個(gè)頭文件中的代碼因?yàn)橹苯訉?duì)寄存器進(jìn)行操作,也就是直接對(duì)地址中的數(shù)據(jù)進(jìn)行操作,因?yàn)橹懒思拇嫫魉诘牡刂匪跃?b class='flag-5'>強(qiáng)制把常量轉(zhuǎn)換為地址,然后對(duì)地址進(jìn)行操作
    發(fā)表于 01-13 15:20 ?2次下載
    關(guān)于<b class='flag-5'>C</b><b class='flag-5'>語言</b>中的<b class='flag-5'>強(qiáng)制</b><b class='flag-5'>類型</b><b class='flag-5'>轉(zhuǎn)換</b>