操作符的优先级和求值顺序——C语⾔
1.操作优先级:
() [] -> . L-R
! ~ ++ -- - (type) * & sizeof R-L
* / % L-R
+ - L-R
>> << L-R
< > <= >= L-R
== != L-R
& L-R
^ L-R
| L-R
c语言中的逗号表达式&& L-R
|| L-R
: R-L
assignments R-L
, L-R
2.c语⾔中,只有四个运算符(&&、||、?:、,)存在规定的求值顺序。&&和||⾸先对左侧操作数进⾏求值,只有在需要时才对右侧的操作数进⾏求值;在a?b:c中,操作数a⾸先被求值,根据a的值然后再求b或c的值;⽽在逗号运算符中,⾸先对左侧操作数进⾏求值,然后该值被“丢弃”,再对右侧的操作数求值。分隔函数参数的逗号并⾮逗号运算符,g(x,y)的,并不是逗号运算符,⽽g((x,y))的则是。C语⾔中其他运算符对操作数的求值顺序是未定义的。特别的,赋值运算符并不保障任何求值顺序
3.把具有副作⽤的操作数表达式在单独的语句执⾏
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论