复杂的优先顺序和评估顺序

时间:2014-10-13 23:29:54

标签: c

有时很难说这个表达式会以什么顺序被证明。他们的任何一套规则都知道我写的表达式会显示未定义的行为吗?

表达式:printf("%d %d\n", ++n, power(2,n));很难说首先评估++ n或权力(2,n)。该行用K& R编写。但是,我觉得这个表达非常好。我假设n将递增并由函数调用幂(2,n)使用。

此外,还有A[i++] = A[j++]这样的表达式。始终首先评估分配的右侧,并根据我看到的值将值分配给左侧。但是,这不会发生吗?表达的本质是暧昧的(完全取决于机器如何假装它)。

表达,A[i] = i++。根据我的看法,i将递增,该值将分配到左侧?

但上述表达方式并不像我认为的那样有效。编写表达式的可能方法是什么,因此我不会得到任何意外的结果,特别关注那些增量或减量运算符。

0 个答案:

没有答案