已知int x=5,y=5,z=5;执行语句x%=y+z;这句话翻译过来是怎样的?

我想问的是运算符的优先级,翻译过来是x=x%(y+z)还是x=x%y+z,虽然最后结果都是5

x%=y+z翻译成这样x=x%(y+z)是对的,这个称谓赋值表达式其中x作为左值
x=x%y+z这个只能算表达式,即先计算x=x%y的值,再+z就成了表达式
你的x y z都等5不好区分,你换一个数试试如:
x=3,y=4,z=6
x=x%y+z就等于9
x=x%(y+z)就等于3,追问

加法运算符大于赋值运算符 所以先算后面的加法,再算%=
可不可以这么理解?

追答

在所以运算符中赋值运算符优先级是最低的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-06
是x=x%(y+z)追问

详细说一下这些运算符的优先级吧

追答

这个给你个链接吧,很详细
http://www.slyar.com/blog/c-operator-priority.html

本回答被提问者采纳
第2个回答  2013-05-06
x %= y+z

%= 后面表达式的值
x = x % (y+z)追问

*=之类的符号是不是也是这样的关系?

相似回答