首页 百科知识 逗号表达式有值和类型吗

逗号表达式有值和类型吗

时间:2022-10-03 百科知识 版权反馈
【摘要】:在C语言中,逗号 “,”也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。

在C语言中,逗号 “,”也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。

其一般形式为:

表达式1,表达式2

其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。

【例3.35】若x和y都是int型变量,x=100,y=200,且有下面的程序片段:

printf("%d",(x,y));

上面程序片段的输出结果是 ( )。

A.200 B.100 C.100200 D.输出格式符不够,输出不确定的值

本例中,y等于整个逗号表达式 (x,y)的值,也就是200,因此输出为200。

【例3.36】

main()

{inta=2,b=4,c=6,x,y;

y=(x=a+b),(b+c);

printf("y=%d,x=%d",y,x);

本例中,y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。

【例3.37】设有如下程序段:

intx=2002,y=2003;

printf("%d\n",(x,y));

则以下叙述中正确的是 ( )。

A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出

B.运行时产生出错信息

C.输出值为2002

D.输出值为2003

本例中,y等于整个逗号表达式 (x,y)的值,也就是要输出的值,因此答案为D。

【例3.38】有以下程序:

main()

{inta=666,b=888;

printf("%d\n",a,b);

程序运行后的输出结果是 ( )。

A.错误信息 B.666 C.888 D.666,888

注意此题和上个例题的不同,答案为B。

对于逗号表达式,还要说明两点:

①逗号表达式一般形式中的表达式1和表达式2也可以是逗号表达式。

例如:

表达式1,(表达式2,表达式3)

由此形成了嵌套情形。因此,可以把逗号表达式扩展为以下形式:

表达式1,表达式2,…,表达式n

整个逗号表达式的值等于表达式n的值。

②程序中使用逗号表达式,通常分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。

并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈