&& 는 논리and 연산자 이니, ++ 이 선/후 어떤것이든 a 값이 거짓이기 때문에
a && ++b 와 a && (++b) 모두 거짓이 되어 Result 에는 0 값이 들어갑니다.
그리고 우선 순위는 ++ 가 먼저 인걸로 압니다.
질문쟁이 님이 쓰신 글 :
: include <stdio.h>
:
: int main(void)
: {
: int a = 0;
: int b = 2;
: int result;
:
: result = a && ++b
:
: printf("a = %d, b= %d, result= %d\n", a, b, result);
:
: return 0;
: }
:
: 위와같이 프로그램을 짜면...
: a = 0, b = 2, result = 0
: 이라는 값이 출력되는데요.
: 연산자 우선순위상 ++b가 먼저 실행되어야 하는거 아닌가요?
: (a && (++b))
: 이렇게 해도 결과는 같게 나오는군요.
: 답변 부탁드립니다.
|