我有一个问题,涉及逻辑运算符的前缀和后缀增量。如果我有以下代码:
void main()
{int i = - 3 , j = 2 , k = 0 , m ;
m=++i||++j&&++k;
printf("%d %d %d %d",i,j,k,m);}
了解到增量和减量运算符的优先级高于&&和||,因此它们将首先执行。然后&&优先级较高,这意味着-2||3&&1的值为-2 3 1 1,用printf输出。
但是在VS2010上尝试时,我得到的输出是-2 2 0 1。
有人能对此进行解释吗?谢谢。
&&
和||
运算符的特定情况下已经定义明确。 - Lundin