C 運算子 和 和 的不同點

2021-07-03 13:38:42 字數 674 閱讀 8168

我不生產自己不熟悉的內容,我只是陌生內容的搬運工!向原作致敬!

&&是邏輯運算子

,&是位運算子

&和|可以進行邏輯運算也可進行位運算,

&&,|| 兩邊只能是bool型別

&,| 兩邊可以是bool型別或者是數值型別

區別:if (a && b)  如果 a 為 false ,整個表示式就為 false,不再計算 b 的值了。

if (a & b)   如果 a 為 false ,整個表示式就為 false,但還要計算 b 的值。

if (a && b++)  如果a 為 false,&&不會再計算後面的值

if (a & b++)   如果a 為 false,&則會計算後面的值

(&) 為整型和 bool 型別預定義了兩種運算規則。

對於整型,& 計算運算元的按位「與」;對於 bool 運算元,& 計算運算元的邏輯「與」;

也就是說對於bool型別 & 和&&的if判斷結果是相同的。

對於整形資料&&只判斷真假(0或非0),兩邊的資料必須都為真或任一方為假;

對於整形資料&兩邊的資料則進行按位與運算,並返回計算結果讓if判斷這個值

邏輯(and): true && false : false

按位(and): 1001 0110 & 1111 1111 : 1001 0110 (二進位制位)

C 中的4種運算子轉化以及它們的不同點

4種運算子如下 1 const cast 操作符 用來幫助呼叫那些應該使用卻沒有使用const關鍵字的函式。換句話說,就是供程式設計師在特殊情況下將限制為const成員函式的const定 除,使其能更改特定屬性。2 dynamic cast 操作符 如果啟動了支援執行時間型別資訊 rtti dyna...

和 和 運算子

今天在看hashmap原始碼時發現有幾個沒見過的運算子 總結如下。圖一 以上 執行的結果為1和0 你會發現運算的規則是 兩個數進行異位運算時,兩個變數值相同時,則值是0,其中乙個變數為0,則值是另外乙個變數的值。圖二 以上 執行的結果為3,2,1 你會發現 第5行和第6行像除法是吧,這麼以為你就錯了...

if和switch的不同點

1 if的括號內的表示式可以分別是布林型別的合法表示式 可以是所有大於0的正s整數為true,反之為小於等於0的正整數為false 可以是常量 列舉 而switch括號內也符合前面if提到的外,就是當圓括號內為正整數只能是0或1,其它的正整數屬於 default範圍。這點可以看如下 switch 2...