。
逗号运算符与表达式
说明: ⑴ 逗号表达式可以嵌套,即逗号表达式中的表达式1和表达式2 还可以是逗号表达式:
(表达式1,表达式2),表达式3 所以逗号表达式可以扩展为:
表达式1,表达式2,......,表达式n (2)表达式n的值是整个逗号表达式的值。 例如,逗号表达式“a=3*5,a*4”的值是60,为什么呢?
4、执行程序段 int x=10,y=9,a,b,c; a=(--x==y++)?--x:++y; b=x++; c=y; 后变量a,b,c的值分别是( ) A)a=9,b=9,c=9 B)a=8,b=8,c=10 C)a=9,b=10,c=9 D)a=1,b=11,c=10 5、以下程序的输出结果是( ) #include <stdio.h> main() {
printf("%d\n" (a=3*5,a*4,a+5));
}
A)65
B)20
C)15
D)10
表达式。
其一般形式为:表达式1,表达式2
求值规则:分别计算两个表达式的值,以
的值作为整个逗
号表达式的值。
3、优先级:逗号运算符为左结合性,优先级在C语言中最低,为
15级。
如:
逗号表达式: x=3,y=x+3的值是
;
赋值表达式: z=(x=3,y=x+3)的值是
;
逗号表达式: z = ( x= 3 ) , ( y = x + 3 )的值是
2、条件表达式 条件表达式的形式是:格式:表达式1? 表达式2: 表达式3 条件表达式的运算功能是:当表达式1的值为真时,求出表达式2 的值,此时表达式2就是整个表达式的值;当表达式1的值为零时, 求出表达式3的值,此时表达式3的值就是整个表达式的值。 优先级:条件运算符的运算优先级是13,只高于赋值运算符和逗 号运算符,比其它所有运算符都低。 结合性:条件运算符的结合方向是从右到左(右结合性)。