最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言類型轉(zhuǎn)換與常量的細(xì)節(jié)深入理解探究

 更新時(shí)間:2023年12月19日 09:26:33   作者:小萬哥  
這篇文章主要為大家介紹了C?語言類型轉(zhuǎn)換與常量的細(xì)節(jié)深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

C 語言中的類型轉(zhuǎn)換

有時(shí),您必須將一種數(shù)據(jù)類型的值轉(zhuǎn)換為另一種類型。這稱為類型轉(zhuǎn)換

隱式轉(zhuǎn)換

當(dāng)您將一種類型的值分配給另一種類型的變量時(shí),編譯器會(huì)自動(dòng)進(jìn)行隱式轉(zhuǎn)換。

例如,如果您將一個(gè) int 值分配給一個(gè) float 類型:

// 自動(dòng)轉(zhuǎn)換:int to float
float myFloat = 9;

printf("%f", myFloat); // 輸出 9.000000

如您所見,編譯器會(huì)自動(dòng)將 int 值 9 轉(zhuǎn)換為 float 值 9.000000。

這可能是危險(xiǎn)的,因?yàn)槟赡軙?huì)在某些情況下失去對(duì)特定值的控制。

尤其是如果相反的情況 - 以下示例會(huì)自動(dòng)將 float 值 9.99 轉(zhuǎn)換為 int 值 9:

// 自動(dòng)轉(zhuǎn)換:float to int
int myInt = 9.99;

printf("%d", myInt); // 輸出 9

0.99 發(fā)生了什么?我們可能想要在我們的程序中使用這個(gè)數(shù)據(jù)!所以要小心。您必須了解編譯器在這些情況下的工作方式,以避免意外結(jié)果。

另一個(gè)例子,如果您將兩個(gè)整數(shù) 5 除以 2,您知道結(jié)果是 2.5。正如您在此頁面的開頭所知,如果您將 sum 存儲(chǔ)為整數(shù),結(jié)果將只顯示數(shù)字 2。因此,將 sum 存儲(chǔ)為 float 或 double 會(huì)更好,對(duì)嗎?

float sum = 5 / 2;

printf("%f", sum); // 輸出 2.000000

為什么結(jié)果是 2.00000 而不是 2.5?好吧,因?yàn)?5 和 2 在除法中仍然是整數(shù)。在這種情況下,您需要將整數(shù)值手動(dòng)轉(zhuǎn)換為浮點(diǎn)值(參見下文)。

顯式轉(zhuǎn)換

顯式轉(zhuǎn)換是通過在值之前放置類型括號(hào) () 來手動(dòng)完成的。

考慮到我們上面示例中的問題,我們現(xiàn)在可以得到正確的結(jié)果:

// 手動(dòng)轉(zhuǎn)換: int to float
float sum = (float) 5 / 2;

printf("%f", sum); // 輸出 2.500000

您也可以將類型放在變量前面:

int num1 = 5;
int num2 = 2;
float sum = (float) num1 / num2;

printf("%f", sum); // 輸出 2.500000

由于您在上一章中學(xué)習(xí)了“小數(shù)精度”,您可以通過刪除多余的零(如果您愿意)使輸出更清晰:

int num1 = 5;
int num2 = 2;
float sum = (float) num1 / num2;

printf("%.1f", sum); // 輸出 2.5

C 語言中的常量

如果您不想讓其他人(或自己)更改現(xiàn)有變量的值,可以使用 const 關(guān)鍵字。

這將聲明變量為“常量”,這意味著它不可更改,只讀:

const int myNum = 15; // myNum 始終為 15
myNum = 10; // 錯(cuò)誤:對(duì)只讀變量 'myNum' 進(jìn)行賦值

當(dāng)您擁有不太可能改變的值時(shí),應(yīng)始終將變量聲明為常量:

const int minutesPerHour = 60;
const float PI = 3.14;

關(guān)于常量的注意事項(xiàng)

當(dāng)您聲明一個(gè)常量變量時(shí),必須為其分配一個(gè)值:

// 就像這樣:
const int minutesPerHour = 60;
// 然而,這不起作用:
const int minutesPerHour;
minutesPerHour = 60; // 錯(cuò)誤

常量在程序中可以提高代碼的可讀性,并防止在程序中無意中更改重要的值

以上就是C語言類型轉(zhuǎn)換與常量的細(xì)節(jié)深入理解探究的詳細(xì)內(nèi)容,更多關(guān)于C語言類型轉(zhuǎn)換常量的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C語言函數(shù)的遞歸和調(diào)用實(shí)例分析

    C語言函數(shù)的遞歸和調(diào)用實(shí)例分析

    一個(gè)函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身稱為遞歸調(diào)用。這種函數(shù)稱為遞歸函數(shù)。C語言允許函數(shù)的遞歸調(diào)用。在遞歸調(diào)用中,主調(diào)函數(shù)又是被調(diào)函數(shù)。執(zhí)行遞歸函數(shù)將反復(fù)調(diào)用其自身,每調(diào)用一次就進(jìn)入新的一層
    2013-07-07
  • C++實(shí)現(xiàn)冒泡排序(BubbleSort)

    C++實(shí)現(xiàn)冒泡排序(BubbleSort)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)冒泡排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Linux下semop等待信號(hào)時(shí)出現(xiàn)Interrupted System Call錯(cuò)誤(EINTR)解決方法

    Linux下semop等待信號(hào)時(shí)出現(xiàn)Interrupted System Call錯(cuò)誤(EINTR)解決方法

    本篇文章是對(duì)在Linux下semop等待信號(hào)時(shí)出現(xiàn)Interrupted System Call錯(cuò)誤(EINTR)的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++ Qt開發(fā)之使用QTcpSocket實(shí)現(xiàn)TCP網(wǎng)絡(luò)通信

    C++ Qt開發(fā)之使用QTcpSocket實(shí)現(xiàn)TCP網(wǎng)絡(luò)通信

    Qt 是一個(gè)跨平臺(tái)C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺(tái)窗體應(yīng)用程序,本文主要為大家介紹了如何運(yùn)用QTcpSocket組件實(shí)現(xiàn)基于TCP的網(wǎng)絡(luò)通信功能,需要的可以參考下
    2024-03-03
  • C語言中字符型數(shù)組的實(shí)現(xiàn)示例

    C語言中字符型數(shù)組的實(shí)現(xiàn)示例

    本文主要介紹了C語言中字符型數(shù)組的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-12-12
  • C++?BoostAsyncSocket實(shí)現(xiàn)異步反彈通信的案例詳解

    C++?BoostAsyncSocket實(shí)現(xiàn)異步反彈通信的案例詳解

    這篇文章主要為大家詳細(xì)介紹了C++?BoostAsyncSocket如何實(shí)現(xiàn)異步反彈通信,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下
    2023-03-03
  • C++中用指向數(shù)組的指針作函數(shù)參數(shù)

    C++中用指向數(shù)組的指針作函數(shù)參數(shù)

    多維數(shù)組名作為函數(shù)參數(shù)傳遞:在二維數(shù)組中,數(shù)組名a是指向首行a[0]的指針,也就是說a=&a[0]; a[0]是指向首元素a[0][0]的指針,也就是說a[0]=&a[0][0]
    2013-10-10
  • C++數(shù)據(jù)結(jié)構(gòu)之二叉搜索樹的實(shí)現(xiàn)詳解

    C++數(shù)據(jù)結(jié)構(gòu)之二叉搜索樹的實(shí)現(xiàn)詳解

    二叉搜索樹作為一個(gè)經(jīng)典的數(shù)據(jù)結(jié)構(gòu),具有鏈表的快速插入與刪除的特點(diǎn),同時(shí)查詢效率也很優(yōu)秀,所以應(yīng)用十分廣泛。本文將詳細(xì)講講二叉搜索樹的C++實(shí)現(xiàn),需要的可以參考一下
    2022-08-08
  • C語言猜兇手的代碼實(shí)現(xiàn)

    C語言猜兇手的代碼實(shí)現(xiàn)

    本文主要介紹了C語言猜兇手的代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • C語言中isdigit()函數(shù)和isxdigit()函數(shù)的用法

    C語言中isdigit()函數(shù)和isxdigit()函數(shù)的用法

    這篇文章主要介紹了C語言中isdigit()函數(shù)和isxdigit()函數(shù)的用法,用來判斷字符師傅為阿拉伯?dāng)?shù)字和16進(jìn)制數(shù)字,需要的朋友可以參考下
    2015-08-08

最新評(píng)論

鸡泽县| 新化县| 武汉市| 鄂温| 抚顺市| 枣强县| 台南市| 泾源县| 佛学| 岱山县| 绍兴市| 商洛市| 景洪市| 广宁县| 新巴尔虎右旗| 将乐县| 克山县| 富蕴县| 天峻县| 东阿县| 察隅县| 宁南县| 泽州县| 吴川市| 唐海县| 葫芦岛市| 西藏| 会同县| 内黄县| 怀化市| 资中县| 广安市| 工布江达县| 集贤县| 馆陶县| 龙胜| 丰台区| 黄浦区| 太仆寺旗| 河间市| 长白|