C语言逗号运算符和表达式
在C语言中,逗号不仅作为函数参数列表的分隔符使用,也作为运算符使用。逗号运算符的功能是把两个表达式连接起来,使之构成一个逗号表达式。逗号运算符在所有运算符中是级别最低的。
C语言逗号表达式的一般形式如下:
【示例】逗号表达式的应用。
y=6,x=6
对于逗号表达式还要说明以下3点:
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
C语言逗号表达式的一般形式如下:
表达式1, 表达式2
求解的过程是先计算表达式1,再计算表达式2,最后整个逗号表达式的值就是表达式2的值。【示例】逗号表达式的应用。
#include<stdio.h> int main() { int a=2,b=4,c=6,x,y; y=(x=a+b),(b+c); printf("y=%d,x=%d\n",y,x); }运行结果:
y=6,x=6
范例分析
在本范例代码第 05 行,因为逗号运算符的优先级比赋值运算符优先级低,所以将该语句整体看成逗号表达式,第1个表达式是 y=(x=a+b),第2个表达式是 b+c。先计算 y=(x=a+b),其中,x=a+b=6,y=(x=a+b)=6;再计算 b+c=10。这条语句的值等于第2个表达式的值 10。对于逗号表达式还要说明以下3点:
-
逗号表达式一般形式中的表达式1和表达式2也可以是逗号表达式。例如
表达式1, (表达式2, 表达式3)
,形成了嵌套情形。因此可以把逗号表达式扩展为以下形式:表达式1, 表达式2, …, 表达式n
,整个逗号表达式的值等于表达式 n 的值。 - 程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。
- 并不是在所有出现逗号的地方都组成逗号表达式,如本例中代码的第 04 行。在变量说明中,函数参数表中的逗号只是用作各变量之间的间隔符。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。