1樓:匿名使用者
1. 逗號表
達式的返回值是最後一個表示式的結果,也就是 a +2的結果2.逗號表示式的運算優內先級最
容低,所以先執行其他的運算
運算順序:
1. a = 3;
2. a *3
3. a + 2 也就是 3 + 2
所以b = 5;
2樓:小輝灰
b = 5; 最後貌似是以 b = a+2 算的
3樓:杞懋尹永康
考察c語言中運算copy符的優先順序bai。
第一步先呼叫fun1,執行a=22,
b=38
第二步,dufun1中呼叫fun2,在
zhifun2中,由於*的運算子dao的優先順序高於%,所以先執行22*38=836
836%3=2,因此答案為2
c語言中int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf
4樓:匿名使用者
c語言copy提供一種特殊的運算子——逗號運算子。用它將兩個表示式連線起來。如:
3+5,6+8
稱為逗號表示式,又稱為「順序求值運算子」。逗號表示式的一般形式為表示式1,表示式2
逗號表示式的求解過程是:先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式「3+5,6+8」的值為14。又如,逗號表示式
a=3*5,a*4
對此表示式的求解,讀者可能會有兩種不同的理解:一種認為「3*5,a*4」 是一個逗號表示式,先求出此逗號表示式的值, 如果a的原值為3,則逗號表示式的值為12,將12賦給a, 因此最後a的值為12。另一種認為:
「a=3*5」是一個賦值表示式」,「a*4」是另一個表示式,二者用逗號相連,構成一個逗號表示式。這兩者哪一個對呢?賦值運算子的優先順序別高於逗號運算子, 因此應先求解a=3*5(也就是把「a=3*5」作為一個表示式)。
經計算和賦值後得到a的值為15,然後求解a*4,得60。整個逗號表示式的值為60。
5樓:匿名使用者
c=(a+=a+2),(a=b,b+3);
->c=(a+=a+2);(a=b,b+3);
->c=(a+=a+2);a=b;b+3;
6樓:焚香木弋
int a=1,b=2,c=3;
c=(a+=a+2),(a=b,b+3);
相當於兩個順序語句:
先執行了c=(a+=a+2)這個語句得出c=a=a+1+2=4;
然後執行a=b,b+3;得出a=b=2;後面專的b+3單純是迷惑人
屬而已,不起作用。
所以輸出的答案是a=2,b=2,c=4;
7樓:沫宸萱
樓主自己敲下**執行結果不就知道了?
8樓:康康
2,2,4
可以自己編譯跑一下啊,比來問以後效率得多
k=(a=2,b=3,a+b)符合c語言語法嗎
9樓:匿名使用者
k=(a=2,b=3,a+b)是符合c語言語法的!
括號中是個逗號運算,a=2, b=3,
a+b = 2+3=5
最後返回a+b的值5k=5
10樓:匿名使用者
符合,這是逗號表示式,取最右邊的值k=5
在c語言中int a 2,b 3,c 6,ma cb 1 ac 0 b a 2 0 2為什麼ma cbac b
a c a c 的值為0。很簡單 b a 2.0的值為6.所以總體是6.個人見解,沒有跑程式驗證 你確定你對這兩個左值賦值沒問題?a c 0 b a 2.0 2 c語言中int a 3,b 2,c 1執行if a b c a b else a c 後a 1 執行的時候bai,應該寫a b b c 你...
在C語言中b5表示什麼意思,c語言中b3b5之類的語句是什麼意思。
是b b 5 的意思 就是b b 5的意思 同樣a 3 a a 3 c語言中 b 3 b 5 之類的語句是什麼意思。是b b 3 b b 5的簡略語句 b 3就是b b 3。b 5就是b b 5 c語言中b 5 0 什麼意思?很明顯,這是在對複陣列 制b 5 進行初始化,具體操作的細節bai需要根d...
8,且3a2bc38則2a4b3c的值是
設a 7 b 5 c 8 t,則 a 7t,b 5t,c 8t.3a 2b c 38 21t 10t 8t 38 t 2.2a 4b 3c 14t 20t 24t 10t 10 2 20。1由a 7 b 5 c 8得出 bai5a 7b b 5a 7 8a 7c c 8a 7 2由3a 2b c 3...