C語言中!是邏輯運算符,叫作邏輯非。
什麼是邏輯運算--邏輯運算用來判斷一件事情是“對”的還是“錯”的,或者說是“成立”還是“不成立”,判斷的結果是二值的,即沒有“可能是”或者“可能不是”,這個“可能”的用法是一個模糊概念,在計算機裏面進行的是二進制運算,邏輯判斷的結果只有二個值,稱這二個值爲“邏輯值”,用數的符號表示就是“1”和“0”。其中“1”表示該邏輯運算的結果是“成立”的,如果一個邏輯運算式的結果爲“0”,那麼這個邏輯運算式表達的內容“不成立“
邏輯非的作用是表達式取反:
1.如果表達式是真,邏輯非取值後就變成假。比如表達是int a=0xfffff; if(a)=if(1) ,在上面的計算中無論a取多大值,對於if(a)來說只有一個值就是if(1);if(!a)=if(0),換算可以得到!a=0;
2. 如果表達式是假,邏輯非取值後就變成真。比如表達是int a=0; if(a)=if(0);if(!a)=if(1);
所以在C語言的邏輯計算過程中:!!(a)=!(!a),假設(a)=1,!(a)=!(1)=0,!!(a)=!(0)=0;