



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、復合算術運算符現在我們來看看由幾種運算符和包含混合數據類型的更復雜的表達式。優先權規則算術表達式能夠由許多常量、變量、運算符和括號組成,那么操作執行的次序是怎樣的呢?例如,在賦值語句中avgTe mp = FREEZE _PT + BOIL_ PT / 2.0;是FREEZE_PT + BOIL_PT首先被計算呢還是 BOIL_PT / 2.0首先被計算?基本的算術運算符的運算順序與數學的運算符順序是一樣的,按照優先權規則:最高優先級:單目+單目-中等優先級:* / %最低優先級:+ -在上面的表達式例子中隱含著用括號一樣FREEZE _PT + (BOIL_ PT / 2.0即,我們首先用2
2、除BOILPT然后加FREEZE_PT得到結果。你能夠使用括號改變求值的次序,在語句avgTe mp = (FREEZE _PT + BOIL_ PT / 2.0;中FREEZE_PT和BOIL_PT首先被加,然后它們的和再除以2。我們首先求括 號內的子表達式的值,然后接下來再按運算符的優先權規則求值。當一個算術表達式有幾個具有同樣優先權的雙目運算符時,它們的結合次序是從左到右。表達式in t1 - i nt2 + int3意味著(inti - int2 + int3,不是int1 - (int2 + int3。另一個例子,我們使用表達式(floatl + float2 / floatl *
3、3.0首先求括號內的表達式的值,然后將得到的和除以floatl再乘以3.0。下面是更 多的一些例子。表達式值10/2*3 1510%3-4/2 -15.0*2.0/4.0*2.0 5.05.0*2.0/(4.0*2.0 1.255.0+2.0/(4.0*2.0 5.25在C+中,所有的單目運算符都有從右到左的結合性例如,-+ x意味著-(+ x而不是意味著(-+ x。類型的強制和類型的轉換整型值和浮點值被不同的存儲在計算機存儲器內,如果在一條賦值語句或算術表達式中我們將整數和浮點值混合在一起會發生什么情況 ?讓我們首先看看賦值語句。賦值語句如果你做如下聲明int some Int ;float
4、 someFloat ;賦值語句someFloat = 12;似乎會存儲整型值12到someFloat中,但是不是這樣。計算機拒絕存儲任何其 它除浮點值外的值到someFloat中。編譯器會插入額外的機器語言指令,首先將12 轉換為12.0然后再將12.0存儲到someFloat中。這個隱含的(自動的從一種數據類型的值轉換為另一種數據類型的值的轉換被 稱為類型強制。語句some Int = 4.8;同樣引起類型的強制。當浮點值被賦給int變量時,小數部分被截去,因此somelnt被賦值為4。如果我們避免混合數據類型,對一些讀程序的人來說,程序就不會出現上面兩種 賦值語句的混淆的情況。someF
5、loat = 12.0;some Int = 4;類型轉換是從一種數據類型值轉換為另一種類型值的顯式轉換。為了使我們的程序盡可能的清楚,我們可以使用顯式類型轉換。一個 C+類型轉換操作由數據類型名然后是用括號括起來的表達式someFloat = float(3 some Int + 2 ;some Int = in t(5.2 / someFloat - ano therFloat ;兩種語句some Int = someFloat + 8.2;some Int = in t(someFloat + 8.2 ;產生同樣的結果。注意,在將浮點值存儲到一個int變量之前,有一種進行四舍五入而不是截
6、去小 數的好方法,下面給出了如何做:some Int = in t(someFloat + 0.5 ;當someFloat包含4.7時,什么值存儲到someInt中,再試一次,假如someFloat包 含4.2,什么值存儲到someInt中。(這是假設someFloat是一個正數,用加0.5來四舍 五入的技術在表達式中也可能有混合的數據類型:some Int someFloat4.8 + someI nt -3這樣的表達式被稱為混合類型表達式。無論什么時候,一個整型值和一個浮點值用運算符連接在一起,就隱含著類型強 制的出現。讓我們檢測計算機如何求表達式 4 .8 + someI nt -3的值
7、,這里someI nt包含值為 2。首先+運算符的操作數有混合類型,所以someInt被強制為2.0 (這種轉換只是暫 時的,它不影響存儲在someInt內的值。進行加運算后,產生值6.8。接下來減(-運算 符連接一個浮點值(6.8和一個整型值(3,值3被強制為3.0,進行減運算,結果是浮點值3. &像賦值語句一樣,在表達式內你可以使用顯式類型轉換來減少錯誤。寫表達式如下:float(some Int someFloat4.8 + float(some Int - 3這樣使你的意圖是什么更清楚。顯式類型轉換不僅對程序的清晰是有價值的,而且在某些場合用于糾正編程也 是必須的。給出聲明int sum ;int count ;float average;假設sum和count當前包含的值分別為60和80,如果sum表示一組整數值的 和并且count表示整數值的數目,讓我們求出平均值average:average = sum / count; /錯誤這條語句存儲值0.0到average中。除運算符/的兩個操作數都是整型int,所以 執行整數除,60除以80產生結果為整數值0,接著在存儲0到average之前,計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 娛樂場所設備租賃及運營合作協議
- 個人出生日期與任職信息證明(6篇)
- 手房兩年后過戶合同
- 互聯網創業基礎知識
- 小學語文寫作教學的創新實踐
- 電子商務電商物流實戰案例解析題
- 環保教育在小學階段的實施路徑
- DB14-T 3400-2025 連香樹近地保護技術規程
- 外貿英語術語應用與聽力訓練題集
- 高中物理必修電學基本概念教學教案
- 統編版(2024)七年級下冊歷史期末專題復習課件40張
- 湖北省武漢市2025屆高三年級五月模擬訓練試題數學試題及答案(武漢五調)
- 2025年湖北省襄陽市襄州區中考數學二模試卷
- 2024年浙江省單獨考試招生文化考試語文試卷真題(含答案詳解)
- 江蘇省蘇州市昆山市2022-2023學年四年級下學期期末數學試題
- MSG-3中文版課件
- 盾構施工總結(doc106頁)
- 轉發省局《關于加強非煤礦山安全生產班組建設的指導意見》的通知
- 第四節SS4改型電力機車常見故障處理
- 分部驗收橋梁主體驗收評估報告
- 計算機網絡設計畢業設計論文
評論
0/150
提交評論