c語言逗號(hào)運(yùn)算符舉例 逗號(hào)表達(dá)式的運(yùn)算規(guī)則?
逗號(hào)表達(dá)式的運(yùn)算規(guī)則?C語言提供了一個(gè)由逗號(hào)運(yùn)算符連接的公式,稱為逗號(hào)表達(dá)式。逗號(hào)運(yùn)算符也稱為順序求值運(yùn)算符。1. 一般形式表達(dá)式1,表達(dá)式2從左到右依次計(jì)算每個(gè)表達(dá)式的值,“表達(dá)式n”的值就是整個(gè)逗
逗號(hào)表達(dá)式的運(yùn)算規(guī)則?
C語言提供了一個(gè)由逗號(hào)運(yùn)算符連接的公式,稱為逗號(hào)表達(dá)式。逗號(hào)運(yùn)算符也稱為順序求值運(yùn)算符。
1. 一般形式
表達(dá)式1,表達(dá)式2從左到右依次計(jì)算每個(gè)表達(dá)式的值,“表達(dá)式n”的值就是整個(gè)逗號(hào)表達(dá)式的值。
例如,逗號(hào)表達(dá)式“a=3*5,a*4”=60的值:首先解出a=3*5,得到a=15;然后求出a*4=60,所以逗號(hào)表達(dá)式的值=60。
另一個(gè)例子是逗號(hào)表達(dá)式“(a=3*5,a*4),a 5的值是20:首先解a=3*5,得到a=15;然后解a*4=60;最后解a 5=20,所以逗號(hào)表達(dá)式的值是20。
注意:逗號(hào)不會(huì)到處出現(xiàn),它們都是逗號(hào)運(yùn)算符。在許多情況下,逗號(hào)僅用作分隔符。
什么是逗號(hào)表達(dá)式?C語言中?
逗號(hào)表達(dá)式的操作級(jí)別最低,低于賦值運(yùn)算符的操作級(jí)別。所以y=(x=a,b),(b,c)首先計(jì)算x=a,b=6,然后y=x=6,然后b,c不影響x和y的值,所以x和y的最終值都是6。只有y=(x=a,b)和(b,c)是b,c=10。如果y=((x=a,b),(b,c)),則結(jié)果為x=6,y=b,c=10
逗號(hào)運(yùn)算符在c中的優(yōu)先級(jí)最低,由其分隔的表達(dá)式將從左向右求值。
例如,
For(I=0,j=strlen(s)-1,I
…]}]這里不能使用分號(hào),否則會(huì)與For中用于分隔循環(huán)控制的三條語句的分號(hào)混淆。
逗號(hào)運(yùn)算符也適用于其他密切相關(guān)的結(jié)構(gòu),例如交換兩個(gè)變量的值。它可以寫成
TMP=a,a=B,B=TMP
但使用時(shí)要小心。分號(hào)也不錯(cuò)。
C語言程序中的for循環(huán)語句有時(shí)要用逗號(hào)表達(dá)式,這里的逗號(hào)表達(dá)式具體有什么作用???
逗號(hào)易于處理。逗號(hào)只是將兩個(gè)公式分開。括號(hào)的主要作用是將括號(hào)內(nèi)的運(yùn)算公式作為一個(gè)整體,也具有優(yōu)先運(yùn)算的含義(其含義與數(shù)學(xué)上相同)。對(duì)于你的程序,首先,B,原來的公式是(B=4*5,B*2),B 6先計(jì)算B=4*5,然后B=20,然后逗號(hào)后面的公式是B*2。注意,這里并沒有說把結(jié)果賦給B,所以B仍然等于20。最后的b6是一樣的。它只計(jì)算一個(gè)公式,不保存結(jié)果,所以B的最終輸出是20;另外,a,輸出公式是一個(gè)括號(hào),是一個(gè)整體。在公式中,先計(jì)算a=3*5,這樣a=15,再計(jì)算a*4,也不保存。A還是15,最后算出A是5。此時(shí),沒有賦值,因此a=15。
但是,由于同一個(gè)括號(hào)中有兩個(gè)逗號(hào)分隔三個(gè)公式,因此括號(hào)的總值由最后一個(gè)公式確定,最后一個(gè)公式的值是A5,即155,因此括號(hào)的總值是20,輸入值是20。