1樓:手機使用者
不知道你要問什麼,但是我仍然可以告訴你這句話的意思!1,a,b肯定是在程式的某個地方定義的整形變數,他們代表的是任何整數,具體是多少,要看程式怎麼賦值了2,==符號就是 等於的意思,注意c語言中只有一個等號的情況下,不是等於的意思,而是賦值3,&&是並且的意思 ,也就是說要這個符號前後的表示式全都是真的情況下,才返回真4,( )和數學中的括號是一個意思,起到運算的先後的作用5,! 是 非的意思,我們知道判斷的結果只有兩個 真 或者 假,所以你如果得到一個判斷的答案是假的話,再用這個符號弄一下,就變成了非假,也就是 真 的意思好了我們來看這個判斷式,為了把這個問題說清楚,我們把這個問題分為4個情況1。
a等於0 b也等於0 那麼a==0 返回真 b==0 返回真 上述兩個結果 邏輯與 ,就是真並且真,所以還是返回真 最後,上述結果再邏輯非,變成非真,也就是假。 所以在這種情況下返回假2。a不等於0 b也不等於0 那麼a==0 返回假 b==0 返回假 上述兩個結果 邏輯與 ,就是假並且假,所以返回假 最後,上述結果再邏輯非,變成非假,也就是真。
所以在這種情況下返回真3。a等於0 b不等於0 那麼a==0 返回真 b==0 返回假 上述兩個結果 邏輯與 ,就是真並且假,所以返回假 最後,上述結果再邏輯非,變成非假,也就是真。 所以在這種情況下返回真4。
與3 的情況一樣了!希望對你有幫助
c語言中,a=-1,b=1;if((++a<0)&&!(b--<=0))
2樓:青水之畔
++a,先將a加1,再判斷,
a=0,(++a<0)為假,值為0
b--,先進行判斷,再減一,b=1,所以(b--<=0)值為假,因邏輯是與,(++a<0)為假,整個表示式必為假,此時便不再算後面的表示式,因此,b的值並沒有減1.
結果(++a<0)&&!(b--<=0)值為0,a為0,b為1
3樓:匿名使用者
(++a<0)&&!(b--<=0)
運算級() > ++ > -- > < > <= > ! >&&
執行順序
++a<0其中先++a=0 ++a<0 不成立 值為0&&兩邊都成立值為1
只要有0就不成立
所以後面的就短路了
後面根本就沒有執行
單純執行到++a<0就結束了
if的執行體不執行.....
4樓:浪人
++a是先算a=a+1再把a的值作為(++a)的值,如當a=-1時則(++a)=0;a=0.
b--則是
先將b的值作為b--的值,在執行b=b-1,如當b=1時則(b--)=1,b=0;
&&是數學中並的關係,!則是對()裡的否定,如果()裡的表示式成立則,!()不立,!的運算級高所以先執行!(),在執行&&。
5樓:匿名使用者
1 if 裡面有兩個判斷語句, 如果第一個為false,不管第二個為false或者為ture,結果都為false,所以如果第一個為false,就沒有必要執行第二個了,程式就是這麼做的。
2 在你的判斷中++a結果0.很顯然0<0 是false,所以此時你整個判斷語句就為false。下面即使再有n個條件也不會去判斷了。
6樓:匿名使用者
++a<0 先判斷a是否大於0 然後再加1 b--<=0 先b—1 然後再判斷<=0
c語言中的0xf代表什麼,C語言中0xFFFF表示什麼
張老師情感分析 c語言中對變數賦值0x是以十六進位制數作為變數的值進行運算的。一般用來表示記憶體地址的。舉例說明 定義x int x 0x23 這句話的意思跟定義成int x 35一樣的。編譯器在接收到0x23時就把它當做十六進位制數來處理。簡單來說,表示0x後面的值為十六進位制。擴充套件資料 1 ...
在C語言中0是真還是假,C語言中什麼時候0表示真,1表示假
這裡的 0或者1 真或假 不能說明程式出錯了,反而說明程式執行成功了。因為前面的都執行完成才執行return 按照我個人的理解,這句語句的意義在不在於函式的返回值是什麼,意義在返回值的型別和宣告函式時候的返回值型別一致就行。因為如果不返回,或者返回的值型別有問題,就出錯。如果你的main定義為voi...
c語言中0什麼意思,c語言中x0什麼意思
x 0在c 語言裡是表示x不等於0的意思,和數學表達上有一點不一樣,還比如x 2,表示把x和2做比較是否相等。因為取反運算的優先順序高於邏輯運算子 所以這個邏輯表示式的值是先對x作取反運算,再將該值與0作比較是否相等。x 0表示 x 0,運算優先於 運算。是不等於 加非零數等於0 0 1 c語言中 ...