達式進行||運算時,只要有乙個為真,總的值就為真,只
有當所有的都為假時,總的式子才為假。邏輯非(!)運算是把相應的變數資料轉換為相應的真/假值。若原先為假,則邏輯非以後為真,若原先為真,則邏輯非以後為假。
還有一點很重要,當乙個邏輯表示式的後一部分的取值不會影響整個表示式的值時,後一部分就不會進行運算了。例如:
a=2,b=1;
a||b-1;
因為a=2,為真值,所以不管b-1是不是真值,總的表示式一定為真值,這時後面的表示式就不會再計算了。
四、關係運算子
關係運算子是對兩個表示式進行比較,返回乙個真/假值。
符號 功能
> 大於
< 小於
>= 大於等於
<= 小於等於
== 等於
!= 不等於
這些運算子大家都能明白,主要問題就是等於==和賦值=的區別了。
一些剛開始學習c語言的人總是對這兩個運算子弄不明白,經常在一些簡單問題上出錯,自己檢查時還找不出來。看下面的**:
if(amount=123) ……
很多新人都理解為如果amount等於123,就怎麼樣。其實這行**的意思是先賦值amount=123,然後判斷這個表示式是不是真值,因為結果為 123,是真值,那麼就做後面的。如果想讓當amount等於123才執行時,應該if(amount==123) ……
五、自增自減運算子
這是一類特殊的運算子,自增運算子++和自減運算子--對變數的操作結果是增加1和減少1。例如:
--couter;
couter--;
++amount;
amount++;
看這些例子裡,運算子在前面還是在後面對本身的影響都是一樣的,都是加1或者減1,但是當把他們作為其他表示式的一部分,兩者就有區別了。運算子放在變數前面,那麼在運算之前,變數先完成自增或自減運算;如果運算子放在後面,那麼自增自減運算是在變數參加表示式的運算後再運算。這樣講可能不太清楚,看下面的例子:
num1=4;
num2=8;
a=++num1;
b=num2++;
a =++num1;這總的來看是乙個賦值,把++num1的值賦給a,因為自增運算子在變數的前面,所以num1先自增加1變為5,然後賦值給a,最終a也為5。b=num2++;這是把num2++的值賦給b,因為自增運算子在變數的後面,所以先把num2賦值給b,b應該為8,然後num2自增加1變為 9。
那麼如果出現這樣的情況我們怎麼處理呢?
c=num1+++num2;
到底是c=(num1++)+num2;還是c=num1+(++num2);這要根據編譯器來決定,不同的編譯器可能有不同的結果。所以我們在以後的程式設計當中,應該盡量避免出現上面複雜的情況。
六、復合賦值運算子
在賦值運算子當中,還有一類c/c++獨有的復合賦值運算子。它們實際上是一種縮寫形式,使得對變數的改變更為簡潔。
total=t
C語言中的運算子
c語音中的運算子,按其功能,可以分為 算數運算子,關係運算子,邏輯運算子,自增和自減運算子,按位運算子,賦值運算子,和條件運算子。1 算數運算子 運算元可以為任何基本型別,運算結果的型別和運算元型別相同。2 關係運算子 運算元可以為任何基本型別,一般為整型,運算結果,如果兩個運算元關係成立,則結果為...
C語言中的運算子
c語言中的運算子 一 運算子 1 算術運算子 2 賦值運算子 賦值運算子用 來給變數賦值。注意,在c語言中 不表示相等,而只是乙個運算子。3 增量和減量運算子 在程式開發中,我們經常需要對乙個變數的值執行加1或者減1的操作。例如 x x 1 x x 1 為簡化這種操作,c語言提供了增量運算子 和減量...
c語言中的運算子
c語言運算子 是說明特定操作的符號 它是構造c語言表示式的工具 c語言 的運算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都為運算子處理。除了常見的三大類,算術 運算子 關係運算子與邏輯運算子之外,還有一些用於完成特殊任務的運算子,比如位運算子。一 算術運算子 1.加法運算子 除了可以進...