ipk*_*iss 2 c operators associativity
谈到C中运算符的关联性,我想知道为什么具有相同优先级的运算符之间存在差异关联性.例如,后缀增量和后缀减少有左关联性; 而前缀增量和前缀减量具有正确的相关性.对于所有相同的优先级运算符,只有左右关联性是不是很简单?
那背后有什么理由吗?
对于所有相同的优先级运算符,只有左右关联性是不是很简单?
是的,在C中就是这种情况.可能是你假设前缀和后缀具有相同的优先级,这是错误的.Postfix的优先级高于前缀!
还有另一个奇怪的案例需要考虑为什么某些运营商具有某种相关性.来自Wiki,
例如,在C中,赋值a = b是一个表达式,它返回一个值(即,b转换为a的类型),其副作用是将a设置为该值.可以在表达式的中间执行赋值.(表达式可以通过用分号跟随它来形成语句;即a = b是表达式,但a = b;是语句).=运算符的右关联性允许将诸如a = b = c的表达式解释为a =(b = c),从而将a和b都设置为c的值.替代方案(a = b)= c没有意义,因为a = b不是左值.