以逗號(hào)分隔的正則表達(dá)式 逗號(hào)表達(dá)式的運(yùn)算規(guī)則?
逗號(hào)表達(dá)式的運(yùn)算規(guī)則?C語(yǔ)言提供了一個(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語(yǔ)言提供了一個(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語(yǔ)言提供了一個(gè)特殊的輸入運(yùn)算符--逗號(hào)運(yùn)算符表達(dá)式1,表達(dá)式2。逗號(hào)表達(dá)式的求解過(guò)程是:先求表達(dá)式1,再求表達(dá)式2。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值,例如表達(dá)式“3、5、6、8”的值是14。另一個(gè)例子是逗號(hào)表達(dá)式:“a=3*5,a*4”。賦值運(yùn)算符的優(yōu)先級(jí)高于逗號(hào)運(yùn)算符的優(yōu)先級(jí),因此應(yīng)首先求解a=3*5。經(jīng)過(guò)計(jì)算和賦值,a的值是15,然后解出a*4得到60。整個(gè)逗號(hào)表達(dá)式的值是60。逗號(hào)表達(dá)式的一般形式可以擴(kuò)展到表達(dá)式1、表達(dá)式2、表達(dá)式3、,。。。表達(dá)式n。它的值是表達(dá)式n的值。逗號(hào)運(yùn)算符是所有運(yùn)算符中的最低級(jí)別。
在C語(yǔ)言賦值語(yǔ)句中,給多個(gè)變量賦值,用逗號(hào)隔開(kāi),豈不是相當(dāng)于一個(gè)逗號(hào)表達(dá)式?
我不明白。逗號(hào)表達(dá)式是聲明變量的合法組合。多個(gè)有效的運(yùn)算表達(dá)式用逗號(hào)分隔,而int a=1,B=2只能有一種解釋,即在聲明和初始化變量時(shí),同一類型的多個(gè)變量可以用逗號(hào)分隔,寫在同一類型字符之后,最后用分號(hào)結(jié)束。對(duì)于上面的聲明,如果聲明一個(gè)int c,那么c=(a=1,B=2)在運(yùn)算之后,c=2,因?yàn)椋╝=1,B=2)在最右邊的逗號(hào)之后取表達(dá)式的運(yùn)算結(jié)果。所以,我認(rèn)為C=(a=1,B=2)中的(a=1,B=2)是逗號(hào)表達(dá)式,int a=1,B=2不是逗號(hào)表達(dá)式!事實(shí)上,所謂計(jì)算機(jī)語(yǔ)言的“語(yǔ)法”只是一些書寫規(guī)則。還有許多甚至是不靈活的,比如char*P和*Q。語(yǔ)法上說(shuō),*屬于char,但不屬于下面的變量。但是如果它被寫成char*P和Q,那么Q就不被認(rèn)為是指針。我們?cè)趺茨芾斫饽兀糠駝t,像char*P,W,x這樣的語(yǔ)句將被寫成兩行:char*PChar,W,x