我对&& ++ 和 *****的运算符首选项感到困惑
int i=-1,k=-1,y,n;
y=++i*++i;
n=++k&&++k;
printf("%d %d %d %d",i,y,k,n);
输出 gcc:1 1 0 0
在这里,对于 y 的情况,最初 i 增加一次,即 i=0,然后 i 再次增加,即 i=1 现在 i*i 完成,即 25 ,因为 ++ 的优先级高于 *
在第二种情况下,即使 ++ 比 && 具有更高的偏好, k 也不会增加到 1。有人可以解释一下这种现象吗?