1樓:匿名使用者
需要考慮運算表示式的優先順序,
首先+=和%=都是先從右邊算起的,而最右邊a%3等於8對3求餘數,為2
然後,考慮等式a+=a%=2,同樣先從右邊算起,a%=2後得到的值為8除以2的餘數,為0
最後a+=0,顯然,結果為8
2樓:
等效於:
int tmp;
tmp=a%3; //tmp=2
a=a%tmp; //a=0
a=a+a; //a=0
3樓:
+=,%=都為複合運算子。
先算a%3,a%3的意思是a對3取餘,得到一個結果。
a%3=a%3的意思是a=a對(a%3)的結果取餘,得到一個結果並賦值給a。
a+=a%=a%3的意思是a=a+(a%3=a%3)的結果,就得到了a 的值。
注意:在這個過程中a 值得變化。
擴充套件資料:複合賦值運算子有下列這些:
+= 加法賦值
-= 減法賦值
*= 乘法賦值
/= 除法賦值
%= 模運算賦值
<<= 左移賦值
>>= 右移賦值
&= 位邏輯與賦值
|= 位邏輯或賦值
^= 位邏輯異或賦值
C語言表示式105的值是C語言中表示式105的值是?
是1。根據c語言運算規則,檢查左運算元的值是否小於右運算元的值,如果是則條件為真。1 0 5是先執行1 0 false 結果為0,再執行0 5 true 因此結果為1。如下 表示式的值為1 根據運算子表,是從左往右結合的。先看1 0是假,返回0。原式就變成 0 5,是真,返回1 所以結果就是 1。擴...
c語言中while()表示式的疑問
你可以避開0啊,用其他數字代替。或者while x 0 0 100是真。非0即真。表示式為真也是真,如x 4,y 6,x y則是假。這個很簡單,例如定義一個變數int a 然後判斷當a為0時才進入迴圈如下 while a 0 這樣當a為0時就執行迴圈了,因為當a為0時,while 中表示式的邏輯運算...
C語言中表示式135值,c語言程式是求表示式的值s
有一個優先bai 級的問題 du,注意單雙目 運算子的優先順序zhi,雙目運算子dao除賦值回運算子都為自答左向右結合.運算子.與 相比 大於 與 相比 大於 運算子的運算是自左向右.1 3 5,因為 1 3為真,值為1 1 5為假,值為0 故表示式 1 3 5值為0 1 3為真,值為1 1 5為假...