第三章 算術運算子

2021-10-08 03:37:56 字數 2027 閱讀 1576

目錄

math.h ​

強制型別轉換

逗號運算子的功能

為什麼需要常量?如果不使用常量,直接在程式中填寫數字或字串,將會有什麼麻煩?

如何合理使用常量?

const 與#define 的對比?前者比後者有更多的優點:

常量定義規則:

提高效率:對乘方運算和乘法運算的改造

巧用異或運算法則(轉換為二進位製做異或(同0異1))實現兩數值交換

表示式與賦值中的自動型別轉換規則

浮點數不能做求餘運算

對負數求餘數

是把兩個表示式的連線起來組成乙個表示式。

一般形式為:表示式1,表示式2

求值的過程是分別求兩個表示式的值並用表示式 2 的值作為整個逗號表示式的值(這個功能通常是不用的)

k=(x,y);返回k=y;

可把多個表示式連線在一起,構成逗號表示式,其作用是實現對各個表示式的順序求值,因此

逗號運算子也稱為順序求值運算子

程式的可讀性(可理解性)變差。程式設計師自己會忘記那些數字或字串是什麼意思,使用者則更加不知它們從何處來、表示什麼。

在程式的很多地方輸入同樣的數字或字串,難保不發生書寫錯誤。

如果要修改數字或字串,則會在很多地方改動,既麻煩又容易出錯。

const 常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查。而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換可能會產生意料不到的錯誤(邊際效應)。

有些整合化的除錯工具可以對 const 常量進行除錯,但是不能對巨集常量進行除錯。

在c++ 程式中只使用const 常量而不使用巨集常量,即 const 常量完全取代巨集常量。

需要對外公開的常量放在標頭檔案中,不需要對外公開的常量放在定義檔案的頭部。為便於管理,可以把不同模組的常量集中存放在乙個公共的標頭檔案中。

如果某一常量與其它常量密切相關,應在定義中包含這種關係,而不應給出一些孤立的值。

當y=nx和 y=x^n中n較小時,把乘法變加法,把乘方變乘法。 

乙個賦值語句中,若賦值運算子左側(目標側)變數的型別和右側表示式的型別不一致,則賦值時將發生 自動型別轉換。自動型別轉換的規則是:將右側表示式的值轉換成左側變數的型別。(以左側為準,自動轉換

一般而言,將取值範圍小的型別轉換為取值範圍大的型別相對來說是安全的,而反之則是不安全的,好的編譯器會發出警告。

縱向箭頭表示必然的轉換,即將所有的char和short都提公升為int,所有的float都提公升為double(自動型別轉換:所有的char和short都提公升為int,所有的float都提公升為double

完成以上轉換以後其他型別轉換將根據參與運算的運算元型別按由低向高的方向轉換(其餘則是由低到高自動型別轉換

圖中橫向箭頭表示不同型別資料混合運算時由低向高的型別轉換方向,但不代表轉換的中間過程。

第三章 運算子

1.算術運算子 在前,先自增 減,再計算 在後,先計算,再自增 減 2.賦值運算子 如 x y x x y 3.關係運算子 4.邏輯運算子 短路與 短路或 非 與 或 異或 布林表示式同為真,結果才為真 布林表示式同為假,結果才為假 布林表示式取反 和 前面乙個判斷後,後面乙個條件繼續判斷 乙個真乙...

第三章 運算子

輸入為str型別 用 進行賦值 用於接收使用者輸入 算數運算子 算數運算子 作用 冪運算 乘,除,整除,取餘 加,減 位運算子 位運算子 作用 左移位 2 右移位 2 按位與,全部為1時結果為1 按位或,全部為0時結果為0 比較運算子 比較運算子 作用 比較值的大小 is,not is 是不是同乙個...

第三章 運算子小結

算術運算子 加減乘除 int a1 10 int b1 5 cout a1 b1 endl cout a1 b1 endl cout a1 b1 endl 兩個整數相除仍為整數,將小數部分去除 10 3 3 cout a1 b1 endl cout b1 a1 endl 不能除以0 兩個小數可以相除...