c語言中“|”和“||”的區別在于運算類型:“|”執行按位或運算,只有兩個值都為真才為真;“||”執行邏輯或運算,只要有一個或兩個值都為真就為真。
C語言中的“|”和“||”區別
C語言中,“|”和“||”都是邏輯運算符,它們用于對布爾表達式的布爾值進行操作。
“|”:按位或運算
“|”運算符執行按位或運算,對兩個布爾值進行操作:
如果兩個值都為真,結果為真。
如果有一個值或兩個值都為假,結果為假。
“||”:邏輯或運算
“||”運算符執行邏輯或運算,也對兩個布爾值進行操作:
如果任何一個值或兩個值都為真,結果為真。
僅當兩個值都為假時,結果才為假。
區別總結
運算符 | 運算類型 | 結果條件 | ||
---|---|---|---|---|
按位或 | 兩個值都為真 | |||
邏輯或 | 任何一個值或兩個值都為真 |
示例
<code class="c">int a = 1; // 0001 int b = 2; // 0010 int result1 = a | b; // 0011 (按位或) int result2 = a || b; // 1 (邏輯或)</code>
登錄后復制
在第一個示例中,“|”運算符執行按位或運算,結果為“0011”。在第二個示例中,“||”運算符執行邏輯或運算,結果為“1”,因為兩個值都為真。