누군가이 짧은 줄의 코드가 1을 반환하는 이유를 설명 할 수 있습니까?double postincrementation 결과 - if 문과 본문
int i = 0;
if(i++) i++;
printf("%d", i);
나는 문 i
달리 증가해야하는 경우를 검사 할 때 결과가 1 일이 아닌 것이다 의미 다음은 더 나은 2.
그리고 그 결과를 다시 한 번 증가해야한다 증가로 , 왜이 코드 라인이 결과 2입니까? 또한
int i = 0;
if(++i || i++) i++;
이
int i = 0;
if(++i && i++) i++;
반환
C11 표준 초안이 될 것입니다 n1570 : * 6.5.2.4 접미사 증가 및 감소 연산자 2 postfix ++ 연산자의 결과는 피연산자의 값입니다. [...] 결과 값 계산은 의 부작용 * – EOF
'i ++'의 _result_은 0이므로'if()'는 취하지 않습니다. – chux
접미사 형식은 표현식이 계산 된 후에 변수에 저장된 값을 증가 시키므로 if()에 0을 테스트 표현식으로 사용합니다. – Serge