各類數值型資料之間的混合運算:變數的資料型別是可以相互轉換的。轉換的方法有兩種,一種是自動轉換,一種是強制轉換。
1、自動轉換:自動轉換發生在不同資料型別的量混合運算時,由編譯系統自動完成的。
自動轉換遵循以下規則:(1)若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。
(2)轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。
a.若兩種型別的位元組數不同,轉換成位元組數高的型別
b.若兩種型別的位元組數相同,且一種有符號,一種無符號,則轉換成無符號型別
(3)所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表示式,也要先轉換成double型,再作運算。
(4)char型和short型參與運算時,必須先轉換成int型。
(5)在賦值運算中,賦值號兩邊量的資料型別不同時,賦值號右邊量的型別將轉換為左邊量的型別。如果右邊量的資料型別長度左邊長時,將丟失一部分資料,這樣會降低精度,丟失的部分按四捨五入向前捨入。
型別自動轉換的規則:char,short→int→unsigned→long→double
練習:void main()
該程式中,pi為實型;s,r為整型,在執行s=r*r*pi語句時,r和pi都轉換成double進行計算,計算結果也為double型。但由於s為整型,故賦值結果仍為整型,捨去了小數部分。
2、強制型別轉換
強制型別轉換是通過型別轉換運算來實現的。其一般形式為:(型別說明符)(表示式),其功能是把表示式的運算結果強制轉化成型別說明符所表示的型別。例:(float) a 把a轉化為實型
注意:(1)型別說明符和表示式都必須加括號(單個變數可以不加括號)。如把(int)(x+y)寫為(int)x+y就變成了把x轉換成int型後再與y相加。
(2)無論是強制轉換還是自動轉換,都是為了本次運算的需要而臨時對變數的資料長度進行的臨時性轉換,而不改變資料說明時對該變數定義的型別。
例:程式:
#include
void main()
可以很好的說明以上觀點。
Optional變數初學者指南
蘋果三周前發布了swift。從那時起,我一直在閱讀swift的官方指南,並在xcode 6測試版中使用。我開始喜歡swift的簡單和語法。與我的團隊一起,我仍然在研究新的語言,並看看它與objective c 一種30歲的程式語言 相比如何。同時,我們正在努力工作,看看我們如何教初學者,幫助社群輕鬆...
初學者談初學者學html
這是乙個段落。解釋一下就是 html 與 html 之間的文字是描述網頁。head 與 head 之間的文字是文件的元資料。title 與 之間的文字是文件的標題。body 與 body 之間的文字是可見的頁面內容,是文章的主體部分。h1 與 h1 之間的文字被顯示為乙個大標題。p 與 p 之間的文...
初學者mysql MySQL初學者使用指南
有很多朋友雖然安裝好了mysql但卻不知如何使用它。在這篇文章中我們就從連線mysql 修改密碼 增加使用者等方面來學習一些mysql的常用命令。一 連線mysql。1 例1 連線到本機上的mysql。首先在開啟dos視窗,然後進入目錄 mysqlbin,再鍵入命令mysql uroot p,回車後...