표현식을 계산 한 후 또는 전체 구문을 계산 한 후 후위 증가/감소 연산자를 평가합니까?후위 증가 연산자 평가
#include<stdio.h>
void main()
{
int a=0;
int b=0;
printf("%d %d",a||b,b++); // Output is 1 0
}
내 컴파일러는 오른쪽에서 왼쪽으로 printf 인수를 계산합니다. 표현식 a || b의 대답은 1입니다. 즉, | b가 계산되기 전에 b가 증가했음을 의미합니다 (즉, b는 표현식 b ++을 평가 한 직후에 증가합니다).
여기서 읽습니다. Incrementing in C++ - When to use x++ or ++x? 그 후미 증가/감소 전체 진술 후에 평가됩니다.
올바른 내용은 무엇입니까?
어느 쪽도 맞지 않습니다. 동작은 정의되지 않습니다.https://stackoverflow.com/questions/949433/why-are-these-constructs-using-undef-behavior – interjay
을 참조하십시오. 너무 많은 upvotes를받은 답변이 잘못 되었습니까? –
@interjay 일반적으로 변수가 동일한 명령문에서 반복되지 않는 경우의 동작은 무엇입니까? postfix는 표현식을 평가 한 후 또는 전체 문장을 평가 한 후에 변수의 값을 증가 시킵니까? –