비주얼 c에서 아래의 예문을 실행하니까
#include <stdio.h>
void main(void)
{
int a = 1, b = 0, c = -1, d = 0;
d = ++a || ++b && ++c;
printf("a = %d b = %d c = %d d = %d\n", a, b, c, d);
}
a=2 b=0 c=-1 d=1
이 나오는데
배운대로다면 먼저 &&가 || 보다 우선순위가 위니까
++b && ++c가 실행되어서 b=-1,c=0, ++b && ++c=0
그리고 ++a||(++b && ++c)은 a=2 그래서 2||0이니까 1 d=1이므로
a=2 b=1 c=0 d=1인거 같은데
어떻게 저 a=2 b=0 c=-1 d=1이 나오는지 아시는 분 없나요?