日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对C语言中与运算符与或运算符||的探讨

發布時間:2024/1/1 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对C语言中与运算符与或运算符||的探讨 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言中,提供了以下三種邏輯運算符。

一元運算符:!(邏輯非)

二元運算符:&&(邏輯與)、||(邏輯或)


以上三種邏輯運算符中,邏輯非 ! 的優先級最高,邏輯與 && 次之,邏輯或? ||? 優先級最低。

先看題目

#include <stdio.h>int main() {int a,b,c;a=b=c=0;if(++a || ++b && ++c)printf("a=%d,b=%d,c=%d\n",a,b,c);return 0; }

程序的輸出是:

a=1,b=0,c=0


在做C語言練習題的過程中,關于與運算符&&與或運算符||的優先級問題困擾了我很久,有人說&&比||的優先級高,但就像上面的題目,如果是&&的優先級高,那應該b與c的值會+1,然而并沒有。

查了baidu,問同學,最后總結如下

&&與||是同級,看哪個在前就先算哪個。要說優先級,它們的優先級體現在結合上,即++b與++c結合起來做與運算&&,即(++a || (++b && ++c)),

進行運算時,從++a開始運算,a的值已經由0變為1,所以或運算||成立,后面的++b與++c不再執行。

關于這兩個運算符,還有一點要注意的是——

&&與||都有“短路”運算

對于&&運算,則從左到右進行判斷,如果左邊為0,則右邊不再計算,整個&&運算就是0。

對于||運算,也是從左到右進行判斷,如果左邊為1,則右邊不再計算,整個||運算就是1。

所以我們在代碼編寫時要注意這一點,以防由于&&和||的短路運算,導致寫出來的代碼運算結果與預期的不同。

總結

以上是生活随笔為你收集整理的对C语言中与运算符与或运算符||的探讨的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。