第6题目:考查逗号表达式
#include<stdio.h>
int main()
{
int a,b,c,d;
a=3;
b=5;
c=a,b;
d=(a,b);
printf("c=%d\n",c);
printf("d=%d\n",d);
return 0;
}
这段程序的输出是:
(a)c=3 d=3 (b) c=5 d=3 (c) c=3 d=5 (d) c=5 d=5
解答:
考查逗号表达式,逗号表达式的优先级是很低的,比赋值(=)的优先级低.逗号表达式的值就是最后一个元素的值
逗号表达式的还有一个作用就是分割函数的参数列表..
E1,E2, ..., En
上面这个表示式的左右是,E1,E2,... En的值被分别计算出来,En计算出来的结构赋给整个逗号表达式
c=a,b;/ *yields c=a* /
d=(a,b);/* d =b */