1樓:匿名使用者
首先,b++表示對b做自加運算,我們用c代替,c=b++;
然後,a+=b++ 等於 a+=c,即a=a+c,也就是說「==」之前部分是給a賦值的,我們用d代替,即d=a+c;
最後是一個邏輯判斷d==0,也就是判斷前面計算出來的a是否等於0.
這裡要注意的一個地方是b++,不是++b,也就是說在當前這一次判斷的時候b並不自加,而是在當前判斷執行完之後才自加1.
比如初始a=1, b=2,b沒有自加,a=a+b=1+2=3,那麼這句話這次是在判斷「3==0」,下次再判斷的時候b才自加變成了2,a=a+b=3+2=5,相當於在判斷「5==0」,依次類推即可。
2樓:匿名使用者
符號的優先順序是:
在這個算式中是++最高
++是2級,其次==是7級(先左後右),最後是+=是14級這裡單指加了以後的賦值(先右後左)
然後關於==我做了個小驗證,
#include
int main(void)
結果是a為0,b為3。說明在用==(等於)的時候不像=(賦值)完全改變了賦值物件的值只是單次的改變一次物件的值。
例如你的a=1,b=2
計算順序是先b做自加1操作這時b才變為3,然後做b==0,如上的小驗證,做了這個運算後不會改變b的值(這是b裡面的值還是3)只是在參加運算的時候b單次變為0,,然後做a+=b(這裡的b為0)故這時候a還為1。所以執行這個語句以後a=1,b=3。
以上只是自己個人的觀點,不一定對但還是希望能幫到你。
參考資料字元優先順序表)
3樓:中械
其實是a=a+b++==0的簡寫;從運算子的優先順序可知:++最高,+次之,==再次之,而=最低,即先進行b++運算,在進行a+(b++)運算,其次進行a+(b++)==0運算,最總吧a+(b++)==0的結果賦給a。這個可以程式設計應正。
4樓:匿名使用者
2b表示1234等很多數字。
c語言中 b++=2什麼意思
5樓:a羅網天下
b++==2在c語言中判斷b是否等於2後b自加。
在c語言中a++是首先拷貝自己的副本,然後對真值加一++a是對真值加一,然後使用真值。
例如:int a=0, b, c;
b = a++;
c = ++a;
printf("b=%d, c=%d", b, c);
上述程式段執行結果為b=0,c=2,可以證明理論
而a++和++a本身在單獨使用時,與a=a+1是等價的。
c語言的運算子主要用於構成表示式,同一個符號在不同的表示式中,其作用並不一致。下面按計算的優先順序,分別說明不同作用的表示式。需要特別指出,在c語言標準中,並沒有結合性的說法。
相同優先順序運算子,從左至右依次運算。注意字尾運算優先順序高於字首。因此++i++應解釋為++(i++)。
而與或非的運算優先順序都不一樣,因此a && b || b && c解釋為(a && b) || (b && c)合理使用優先順序可以極大簡化表示式。
基本表示式(primary expressions),主要是用於運算子之間,做為運算數。
標識,常量,字串文字量,優先順序提升表示式最優先執行。優先順序提升表示式是指圓括號包圍的表示式,如「( expression )」
6樓:徜逸
語法錯誤。
b++的意思為b自加,即為b=b+1,b=2的意思為b賦值為2,但兩者結合錯誤。可嘗試以下寫法:
1、++b=2
意思為:b自加後將b賦值為2。
2、b++==2
意思為:判斷b是否等於2後b自加。
擴充套件資料b++和++b的區別
運算優先順序不同:++b的優先順序大於b++的優先順序。
發展歷史
c語言誕生於美國的貝爾實驗室,由d.m.ritchie以b語言為基礎發展而來,在它的主體設計完成後,thompson和ritchie用它完全重寫了unix,且隨著unix的發展,c語言也得到了不斷的完善。
為了利於c語言的全面推廣,許多專家學者和硬體廠商聯合組成了c語言標準委員會,並在之後的2023年,誕生了第一個完備的c標準,簡稱「c89」,也就是「ansi c」,目前,最新的c語言標準為2023年釋出的 「c11」。
7樓:匿名使用者
這樣不行的,b++是右值,不能放等號的左邊根據你補充的繼續回答,看以下**就一目瞭然了int b = 0;
int c = (b++ == 2);
printf("%d %d\n", b, c);
此**輸出的是1 0
意思就是,首先判斷b是否等於2,顯然不是,因此c為假 = 0,然後b++,得到1。不懂繼續追問
8樓:匿名使用者
c語言裡面沒有連續的三個運算子同時出現的情況吧
9樓:k高人
b==2//判斷是否等於2
b++==2//判斷b是否等於2,判斷完後無論是否相等,都給b加1
10樓:hello我愛娃娃
b+1=。。。直到等於2結束。
c語言中語句a+=b++是什麼意思
11樓:匿名使用者
先解釋一下 += 和 ++ 是
什麼意思+= 的意思是 左值和右值相加結果賦值給左值如 a=1;b=2;a+=b;後,a=3;b=2。++ 的意思是變數自加1,如a=1;a++;a的值是2,在c中,++有前置和後置如 ++a;a++;,單獨使用的時候是沒有區別的,都是自加1,在有運算時就有區別了,前置的++是自加後才參與運算,後置的++是參與運算後在自加1。如題的畫,假定a=1,b=2,a+=b++的意思就是b=2先參與a+=b運算a=3,然後b自加1,b=3;如果b++換成前置++b,a+=++b就是b先自加1,b=4,然後參與a+=b運算,a=4。
12樓:白蘿蔔
a+=b++要先進行a+=b的運算,然後再進行b的自運算舉例a=1,b=2,則a+=b++,有a=a+b=1+2=3,b=b+1=3.
13樓:匿名使用者
a+=b++的意思是a=a+b,然後b=b+1,就是這樣,你應該是初學c吧!!
14樓:匿名使用者
a+=b++等價於a=a+(b++) 運算時,先計算括號裡面的b++即可。 有疑問提出。 望採納
15樓:哀韶蕭貝晨
要說在c語言中這充其量只能算作是「偽**」。
在vb、pascal等程式設計語言中,<>是「不等於」的意思。
在c中,「不等於」的關係應表示為「!=」
if(a
!=b+c)
printf("a不等於b+c\n");
else
printf("a等於b+c\n");
c語言。a && b ==0 是什麼意思
16樓:匿名使用者
相當於(a ! =0) &&(b==0)
(a ! =0) (b==0)
二個是否同時成立
c語言中:a+++b是什麼意思?
17樓:湛藍水晶
就近原則,與編譯器無關,很容易記的。
相當於(a++)+b;
但是太多+號就不行了,
比如a+++++b,雖然一看就知道意思是(a++)+(++b);但是編譯就通不過,出錯資訊大概是:迷失在加號空間?
18樓:幸巴達
呵呵,不用管,結果是一樣的
都等於a+b
#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv)結果 a=2,b=2,c=3
19樓:匿名使用者
是(a++)+b如果是a+(++b)的話答案應該是4,前者答案才是3
20樓:天曼安周聖
這是(a%b)?b:a
其中a%b
是a除以b取餘數,
若不等於0
(也就是b不整除a)就當成立,
整個式子是取b的值.
若等於0
(也就是b整除a)就當不成立,
整個式子是取a的值.
c語言中 if(!a)b++是什麼意思?
21樓:文化廚子
先看if (a) b++;
上面的語句是將a的值與0進行比較,如果a不等於0,則條件為真,則執行b++,也就是說當a的值不等於0的時候才會執行b++。
再看if (!a) b++
在c++中!是邏輯否運算子,與上面的條件判斷正好相反,即如果a的值是0,則!a=1,則執行b++,也就是說當a的值等於0的時候才會執行b++。
22樓:天災
如果a的值為假,即0,那麼b的值加1.
麻煩採納,謝謝!
23樓:落帥
如果a是0,就對b自增1. 希望能幫到你。 大笨兔 :)
c語言中 a b 1是什麼意思,c語言中 a b 1是什麼意思
相當於這樣 a a b 1 也就是先算出b 1的值,然後乘以a的值,最後賦值給a 相當於a a b 1 比如a為3,b為5 a 3 5 1 首先你要明白什麼是表示式,還有變數 a是一個變數。a a都是a加了版1.比如a原來是1,執行權了a 或 a後,a變數的值就是2了 至於a 和 a的區別主要是在表...
在c語言中,表示什麼意思, 在C語言中,表示什麼意思
樓上 說的太專業了 說的通俗一點就是 並且 的意思 與 運算子 true true true 0 1 false c語言中 是什麼意思?是與的意思 即左右兩邊都成立才成立 應該是要 左邊成立且右邊不成立才成立 00000000000000000000 的優先順序大於 所以 a b就是 a b 兩個 ...
c語言中b a是什麼意思,在C語言中「a b」是什麼意思?
不要這樣寫,這樣寫了程式不報錯,但是執行的效果不是判斷b在a和c之間,而是把a與b比較的結果 true或者false 與c進行比較。是複合運算子。這句意為b b a 注意 中間沒有空格 首先,b 表示對b做自加運算,我們用c代替,c b 然後,a b 等於 a c,即a a c,也就是說 之前部分是...