c語言中int222語句的結果為什麼是

2022-02-07 17:52:58 字數 1673 閱讀 6048

1樓:匿名使用者

c 語言中,逗號(,)也可以是運算子,稱為逗號運算子(comma operator)。逗號運算子可以把兩個以上(包含兩個)的表示式連線成乙個表示式,稱為逗號表示式。其一般形式為:

子表示式1, 子表示式2, ..., 子表示式n例如:2*x,x+=2

逗號運算子的優先順序是所有運算子中級別最低的,通常配合 for 迴圈使用。逗號表示式最右邊的子表示式的值即為逗號表示式的值。上例中,x+=2的值即為該表示式的值。

逗號運算子保證左邊的子表示式運算結束後才進行右邊的子表示式的運算。也就是說,逗號運算子是乙個序列點,其左邊所有***都結束後,才對其右邊的子表示式進行運算。

2樓:_葉子妞妞

2*x,x+=2

這個是逗號表示式

前乙個2*x沒有意義

計算的是

x+=2

於是結果x=4

而逗號表示式是最右的乙個值,所以 表示式的值也是4 。

3樓:來自大遊山胸懷大志的天鵝

因為沒有賦值

2*x=4沒有賦值給x,所以下乙個運算裡x還是等於2

輸出x+=2 2+2=4

在c語言中,int a=2;int c=(a++)×2;的輸出為4,為什麼不是5?

4樓:gta小雞

++號代表該條語句結束後執行自加操作,因此先計算a×2,然後a再自加。

5樓:只做技術不做宅

a++是先參與運算再將a的值+1 就是說先執行 a*2 再執行a=a+1 所以c 是4

c語言,int x=5>1+2&&0||2*4<4,為什麼結果x 的值是一整個函式的值,而y=2,

6樓:空對空飛彈

這個是根據運算子的優先順序來決定的,賦值的優先順序比較低,僅僅高於逗號運算子,所以前面不用括號。

c語言中,設int x=4;表示式 x+=x*=x+1的值為什麼是40???

7樓:

x+=x*=x+1是復合賦值來表示式,右結合性,源即從右往左運算。

x*=x+1等價於

x = x * (x + 1)

即 x = 4 * ( 4 + 1) = 20。注意,此時x已經是20了。

再執行x+=y,此時的y是x*=x+1的執行結果,即20。

x+=y等價於

x = x + y

即 x = 20 + 20 = 40

8樓:喵不語

x+1=5,所以,

x*=5 為x=4x5=20

x+=20.所以x=20+20=40

c語言x+=x*=2什麼意思

9樓:追憶似水__流年

+= 指的是 x=x+?

* = 指的是x=x*?

c語言的執行順序是從右到左

x+= ( x*=2 )

先計算右邊的 x*=2 再 用 結果帶入到x+=()中.

10樓:匿名使用者

x = x + (x*2)

提醒你一句,這東西應該是考試弄得,再實際程式設計中不要這麼寫,可讀性很差

c語言中,這個語句是什麼意思啊C語言中For語句後面的括號裡有兩個分號是什麼意思啊?

tp a a b b tp是交換了ab的指向,不影響主函式,t a a b b t是改變了位址上的值,也就是把i和j的值互換。所以函式中 a b的輸出對應是j 3,i 7,主函式輸出ij這個沒什麼好說的,p和 q還是ij的值。1 加 交換的是位址,會改變主函式中i和j的值,swap交換的是i和j的位...

c語言中intm3xm結果是,c語言中intm3xm結果是

m 3,x m 在執行第二行的時候,m 了,所以m變成4 在執行x m 的時候,由於m還沒有 所以相當於x m所以x 3 所以結果是m 4,x 3 運算子放在m的後面,表示先進行運算然後再是m自增1。因此答案應該是 3 m的值是4。樓主可以仿照樓上那樣編個程式試試。include void main...

c語言中的intp5int5怎麼理解

int p5 int 5 p5是個指標,指向乙個具有乙個int 型形參的函式,這個函式返回乙個指向具有5個int元素的陣列的指標。c語言中int p 5 與 int p 5 的區別 你是不想問 int p 和int p 的區別啊 的優先順序高於 所以前者表示指標陣列,而後者是陣列指標,例如int p...