C语言逗号运算符和逗号表达式
生活随笔
收集整理的這篇文章主要介紹了
C语言逗号运算符和逗号表达式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在C語言中逗號(hào)“,”也是一種運(yùn)算符,稱為逗號(hào)運(yùn)算符。 其功能是把兩個(gè)表達(dá)式連接起來組成一個(gè)表達(dá)式, 稱為逗號(hào)表達(dá)式。其一般形式為:表達(dá)式1,表達(dá)式2
其求值過程是分別求兩個(gè)表達(dá)式的值,并以表達(dá)式2的值作為整個(gè)逗號(hào)表達(dá)式的值。
本例中,y等于整個(gè)逗號(hào)表達(dá)式的值,也就是表達(dá)式2的值,x是第一個(gè)表達(dá)式的值。對(duì)于逗號(hào)表達(dá)式還要說明兩點(diǎn):
逗號(hào)表達(dá)式一般形式中的表達(dá)式1和表達(dá)式2 也可以又是逗號(hào)表達(dá)式。 例如:
表達(dá)式1,(表達(dá)式2,表達(dá)式3)
形成了嵌套情形。因此可以把逗號(hào)表達(dá)式擴(kuò)展為以下形式:
表達(dá)式1,表達(dá)式2,…表達(dá)式n
整個(gè)逗號(hào)表達(dá)式的值等于表達(dá)式n的值。
程序中使用逗號(hào)表達(dá)式,通常是要分別求逗號(hào)表達(dá)式內(nèi)各表達(dá)式的值,并不一定要求整個(gè)逗號(hào)表達(dá)式的值。
其求值過程是分別求兩個(gè)表達(dá)式的值,并以表達(dá)式2的值作為整個(gè)逗號(hào)表達(dá)式的值。
【例】
main() {int a=2,b=4,c=6,x,y;y=(x=a+b),(b+c);printf("y=%d,x=%d",y,x); }
本例中,y等于整個(gè)逗號(hào)表達(dá)式的值,也就是表達(dá)式2的值,x是第一個(gè)表達(dá)式的值。對(duì)于逗號(hào)表達(dá)式還要說明兩點(diǎn):
表達(dá)式1,(表達(dá)式2,表達(dá)式3)
形成了嵌套情形。因此可以把逗號(hào)表達(dá)式擴(kuò)展為以下形式:
表達(dá)式1,表達(dá)式2,…表達(dá)式n
整個(gè)逗號(hào)表達(dá)式的值等于表達(dá)式n的值。
并不是在所有出現(xiàn)逗號(hào)的地方都組成逗號(hào)表達(dá)式,如在變量說明中,函數(shù)參數(shù)表中逗號(hào)只是用作各變量之間的間隔符。
在MISRA C-2004中要求不要使用逗號(hào)表達(dá)式,摘錄如下,
規(guī)則12.10(強(qiáng)制): ?不要使用逗號(hào)運(yùn)算符。?
使用逗號(hào)運(yùn)算符通常不利于代碼的可讀性,可以使用其他方法達(dá)到相同的效果。?
轉(zhuǎn)載于:https://www.cnblogs.com/java20130726/p/3218643.html
總結(jié)
以上是生活随笔為你收集整理的C语言逗号运算符和逗号表达式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对CSS了解-overflow:hidd
- 下一篇: 2013年7月04日_回顾总结