16.2.4.2-逗號運算、關係運算、邏輯運算和條件運算
1.逗號運算和逗號表示式
格式
表示式1,表示式2
求解順序及結果
先求解表示式1,再求解表示式2
最終結果為表示式2的值
2.關係運算與關係表示式
關係運算是比較簡單的一種邏輯運算,優先次序為:
< <= > >= (優先順序相同《高》) = = != (優先順序相同《低》)
關係表示式是一種最簡單的邏輯表示式
其結果型別為bool,值只能為true或false
3.邏輯運算與邏輯表示式
邏輯運算子
!(非) &&(與) ||(或)
優先次序: 高 到 低
邏輯運算結果型別:bool,值只能為true或false
「&&「的運算規則
兩側表示式都為真,結果為真
有一側表示式為假,結果為假
「&&「的」短路特性「表示式1&&表示式2
先求解表示式1
若表示式1的值為false,則最終結果為false,不再求解表示式2
若表示式1的結果為true,則求解表示式2,以表示式2的結果作為最終結果
4.條件運算子與條件表示式
一般形式
表示式1?表示式2:表示式3
表示式1必須是bool型別
執行順序
先求解表示式1,
若表示式1的值為true,則求解表示式2,表示式2的值為最終結果
若表示式1的值為false,則求解表示式3,表示式3的值為最終結果
條件運算(表示式1?表示式2:表示式3)的優先順序
條件運算子優先順序高於賦值運算子,低於邏輯運算子
表示式1是bool型別,表示式2、3的型別可以不同,條件表示式的最終型別為2和3中較高的型別
17.2.4.3-sizeof運算、位運算
1.sizeof運算
計算某種型別或某種變數、某個物件佔多少位元組的運算
sizeof運算子
語法形式
sizeof(型別名)或sizeof表示式
結果值:
「型別名」所指定的型別,或「表示式」的結果型別所佔的位元組數
2.位運算—按位與(&)
運算規則
將兩個運算量的每乙個位進行邏輯與操作
3.位運算——按位或(|)
運算規則
將兩個運算量的每乙個位進行邏輯或操作
用途:
將某些位置1,其他位不變
4.位運算——按位異或(^)
運算規則
兩個運算元進行異或:
若對應位相同,則結果該位為0
若對應位不同,則結果改位為1
用途:
使特定位翻轉(與0異或保持原值,與1異或取反)
5.位運算——取反(~)
運算規則:
單目運算子,對乙個二進位制數按位取反
6.位運算——移位(<<、>>)
左移運算(<<)
左移後,低位補0,高位捨棄
右移運算(>>)
右移後:
低位:捨棄
高位:無符號數:補0
有符號數:補「符號位」
18.2.4.4-運算優先順序、型別轉換
1,混合運算時資料型別的轉換——隱含轉換
一些二元運算子(算數運算子、關係運算子、邏輯運算子、位運算子和賦值運算子)要求兩個運算元的型別一致
在算術運算和關係運算中如果參與運算的運算元型別不一致,編譯系統會自動對資料進行轉換(即隱含轉換),基本原則是將低型別資料轉換為高型別資料
2.混合運算時資料型別的轉換
將乙個非布林型別的算術值賦給布林型別時,算術值為0則結果為false,否則結果為true
將乙個布林賦值給非布林型別時,布林值為false則結果為0,布林值為true則結果為1
將乙個浮點數賦給整數型別時,結果值將只保留浮點數中的整數部分,小數部分將丟失
將乙個整數值賦給浮點型別時,小數部分記為0,如果整數所佔的空間超過了浮點型別的容量,精度可能有損失
3.混合運算時資料型別的轉換——顯式型別
顯式型別轉換的作用是將表示式的結果型別轉換為型別說明符所指定的型別
語法形式
型別說明符(表示式)
(型別說明符)表示式
型別轉換操作符《型別說明符》(表示式)
語法形式——c++的形式
型別轉換操作符《型別說明符》(表示式)
型別轉換操作符可以是:
const-cast 、dynamic-cast、reinterpret-cast、static-cast
例:int(z),(int)z,static-cast(z)三種完全等價
19.2.5-實驗二:簡單程式設計 上
1.適當地使用注釋,能夠提高程式的可讀性。還能讓部分**片段暫時不用,是修改例題程式的利器
2.注釋方法:
方法一延用c語言方法,使用「/「和」/」括起注釋文字;
方法二使用「//」,從「//」開始,直到它所在行的行尾,所有字元都被作為字元處理
3,輔助除錯工具:
利用輔助除錯工具,可以實現單步執行、設定斷點、觀察變數和表示式的值等功能
4.注意
不需要執行原例時,將其注釋掉
測試位元組長度,以確保資料不會溢位
從乙個例子程式,可以衍生出新的程式,完成所需功能
執行時錯誤最主要的兩類原因:型別錯和邏輯錯
熟悉錯誤資訊能大大提高排錯效率
定位和排除執行時的錯誤稱為「程式除錯」
C 基礎筆記2
23 類的字段 乙個變數一旦定義在方法外,類的裡面,就叫做類的字段。這個變數可以被本類中所有的方法訪問,但需要注意的是 靜態方法只能訪問靜態字段。由const修飾的常量不能定義為靜態的 23 方法過載 一般在同乙個類中,方法名相同,並且方法的引數個數不同或對應位置上的型別不同,才能構成方法過載。注意...
C語言基礎筆記(2)
1.main函式 任何乙個c程式必須至少包含乙個主函式,即main函式。主函式的c程式中唯一必不可少的組成部分。其具體格式如下 int main 函式體分為說明部分和執行部分,其中說明部分用於定義變數的資料型別,而執行部分用於實現想要結果的命令。主函式可以利用與調動其它函式,但其它函式不能調動主函式...
C 基礎筆記 Day2
跑了一天回歸測試,留乙個小時補補進度。console.writeline the is p 1.1 方法的第乙個引數 字串 包含稱為佔位符的。佔位符會在執行時替換成字串後的表示式 p 1.1 的值。相較於將表示式p 1.1的值轉換成字串,再用 操作符把它連線到字串後面,這個技術顯然更好。p.s.1這...