當前位置:
首頁 > 知識 > 每天學點C語言-不得不知的類型轉換

每天學點C語言-不得不知的類型轉換

夢想

摘要: 類型轉換規則的知識

1、當出現在表達式里時,有符號和無符號的char和short類型都將被自動轉換為int,在需要的情況下,將自動被轉換為unsigned int。在K&RC下,但不是在當前的C下,folat將被自動轉換為double.因為是轉換成較大的類型,所以這些轉換被稱為提升。

2、在包含兩種數據類型的任何運算里,兩個值都被轉換成兩種類型里較高的級別。

3、類型從高到低的順序是:long double、double、float、unsigned long long、long long、unsigned long、long、unsigned int 、int。一個可能是例外是當long和int具有相同的大小時,此時unsigned int比long的級別更高。之所以short和char類型沒有出現在此清單里,是因為他們已經被提升為int或也可能被提升為unsigned int。

4、在賦值語句里,計算的最後結果將被轉換成將要被賦於值的那個變更的類型。

5、當被作為函數的參數傳遞時,char和short會被轉換為int,folat會被轉換為double。

提升通常是一個平滑的無損害的過程,但是降級可能導致真正的問題。原因很簡單,一個較低級別的類型可能不夠大,不能存放一個完整的數。

想要一起學習C++的可以加裙二四八八九四四三零,裙內有各種資料滿足大家,歡迎加裙

示常式序

下面是在8位char,32位int的系統上運行程序的過程分析:

9和10:字元『C『被作為1位元組的ASCII值存儲在ch里。整數變數i接受由』C『轉換成的整數,即67,它以4位元組存儲。最後,fl接受由67轉換成的浮點數,即67.00.

11和14行:字元變數』C『被轉換成整數67,然後把該整數加1.結果的4位元組整數68被截為1位元組並存儲在ch里。當使用%c說明符進行列印時,68被解釋為』D『的ASCII碼。

12和14行:為了和2相乘,ch的值被轉換為一個4位元組的整數68.乘積整數136為了和fl相加而被轉換為浮點類型。結果203.00f被轉換成int類型並存儲在i中。

13和14:為了和2.0相乘,ch的值("D",即68)被轉換為浮點類型。為了做加法,i值(203)被轉換為浮點類型。結果(339.00)被存儲在fl中。

15和16:在這裡,示常式序嘗試了一個降級。把ch設置為一個很大的數。在截去高位後,ch最終變成了連字元這一字元 的ASCII碼。

指派運算符

到目前為止我們討論的類型轉換是自動完成的。然而,您也可能需要準確的類型,或者需要在程序中表明您是知道您正在做類型轉換的。完成這一任務的方法被稱為指派(cast),其步驟是在某個量的前面放置用圓括弧括起來的被希望轉換成的類型名。圓括弧和類型名一起構成了 指派運算符。其一般形式如下:(type).

今天你進步了嗎?

如果感覺有學到一點東西,就點個贊鼓勵一下吧,哈哈~謝謝!

想要一起學習C++的可以加裙二四八八九四四三零,裙內有各種資料滿足大家,歡迎加裙


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 C加加 的精彩文章:

入門,C語言學習的四個點
為什麼學習C語言,那麼小編來告訴你
技術過硬年薪百萬不是夢,論C加加程序員的前景
看過來,看過來 C語言獲取系統時間的幾種方式
C語言之排序原理分析

TAG:C加加 |

您可能感興趣

選小型SUV你不得不知的這款車型
新學期,不得不做的10件事
不得不看的大學指導
不得了不得了,現在的00後都瞧不上LA MER
不是放不下,只是捨不得
這十個關於男生的冷知識,你不得不學噢!
不得不說潮流系列:VANS一個夠你玩一輩子的品牌
TFBOYS久不合體,急的粉絲不得不這樣做了
每個OL不得不擁有的闊腿褲
玩紫砂不得不學的線條種類!乾貨分享!
關於肺,你不得不知的幾點
十個你不得不知道的動物界之最
周易學那些你不得不知的基礎知識
不得不說,Hold住各種風格的容祖兒是「行走的種草機」沒錯了!
十二星座那些自己不得不承認的缺點
Web前端人士不得不知道的HTML學習小技巧
OPPO R15不僅只是90%屏佔比,這些做法讓用戶不得不愛
使用氣墊BB的3個誤區,以前都用錯了!怪不得老是蹭一身粉
跳槽時,你不得不知的那些事兒
說到換髮型,不得不提的是宋茜