C++逗号运算符与逗号表达式
C++将赋值表达式作为表达式的⼀种,使赋值操作不仅可以出现在赋值语句中,⽽且可以以表达式形式出现在其他语句(如输出语句、循环语句等)中。这是C++语⾔灵活性的⼀种表现。
请注意,⽤cout语句输出⼀个赋值表达式的值时,要将该赋值表达式⽤括号括起来,如果写成“cout<<a=b;”将会出现编译错误。< p="">
C++提供⼀种特殊的运算符——逗号运算符。⽤它将两个表达式连接起来。如
3+5, 6+8
称为逗号表达式,⼜称为“顺序求值运算符”。逗号表达式的⼀般形式为:
表达式1, 表达式2
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。如,逗号表达式
a=3*5, a*4
赋值运算符的优先级别⾼于逗号运算符, 因此应先求解a=3*5(也就是把“a=3*5”作为⼀个表达式)。经计算和赋值后得到a的值为15,然后求解a*4,得60。整个逗号表达式的值为60。
⼀个逗号表达式⼜可以与另⼀个表达式组成⼀个新的逗号表达式,如
(a=3*5, a*4), a+5
逗号表达式的⼀般形式可以扩展为:
表达式1, 表达式2, 表达式3, …, 表达式n
它的值为表达式n的值。
逗号运算符是所有运算符中级别最低的。因此,下⾯两个表达式的作⽤是不同的:
x=(a=3, 6*3)
x=a=3, 6*a
逗号表达式的运算顺序 其实,逗号表达式⽆⾮是把若⼲个表达式“串联”起来。在许多情况下,使⽤逗号表达式的⽬的只是想分别得到各个表达式的值,⽽并⾮⼀定需要得到和使⽤整个逗号表达式的值,逗号表达式最常⽤于循
环语句(for语句)中。
在⽤cout输出⼀个逗号表达式的值时,要将该逗号表达式⽤括号括起来,如:
cout<<(3*5, 43-6*5, 67/3)<<endl;< p="">
C和C++语⾔表达能⼒强,其中⼀个重要⽅⾯就在于它的表达式类型丰富,运算符功能强,因⽽使⽤灵活,适应性强。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论