2014-11-14 1 views
0

왜이식이 있습니까 : int value = 0 if(++value == ++value)이 참입니까?증가 비교 자르기

if(1 == 2)과 같지 않아야합니까? 무엇과 동등한가요?

답변

2

c에서 표현식 ++value == ++value의 값은 이고 정의되지 않음은입니다. 기술적으로 이것은 ==시퀀싱 포인트가 아니기 때문입니다..

비공식적으로 이는 ++==의 평가가 발생하는 순서를 알 수 없음을 의미합니다.

-1

++==보다 높은 연산자 predecence를가집니다. 즉, ++ 작업은 모두 == 전에 실행됩니다.

예를 들어 C Operator Predecense을 참조하십시오.

+0

-1 연산자 우선 순위는 부적합합니다. 밧세바의 대답을 보라. – user694733