在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的值。
②程序中使用逗号表达式,通常分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。
并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。