강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Pikkachu님의 프로필 이미지
Pikkachu

작성한 질문수

홍정모의 따라하며 배우는 C++

3.6 논리 연산자 logical operators 19분

작성

·

179

0

안녕하세요,
 
3.6 논리 연산자 logical operators 19분에서
 
// short circuit evaluation
int a = 1;
int b = 2;
 
if (a == 1 && b++ == 2) // &&는 왼쪽이 false 면 오른쪽은 계산을 아예 안한다.
{
cout << a << " " << b << endl;
}
cout << b << endl;
 
return 0;
 
if (a == 1 && b++ == 2)에서
 
b=2이고 if문에 들어갈때 b++이니까 b->3이 되고 이때 b(3) == 2인지 비교해야 하는거 아닌가요?
연산자 우선순위도 ++가 먼저고 그다음 ==이던데 이해가 잘 되지 않습니다 ㅜㅜ
 
---------------------
 
제가 생각하는게 맞는지 확인 부탁드립니다.
 
b++ 는 ++b와 다르게
 
원래 b 값을 먼저 출력하고 그 후에 ++를 해준다.
 
따라서 b == 2를 먼저 처리하고 b++를 진행한다.
 
맞을까요?

답변 1

0

아래에 적어주신 생각이 맞습니다 :)

Pikkachu님의 프로필 이미지
Pikkachu
질문자

답변 감사합니다 :)

Pikkachu님의 프로필 이미지
Pikkachu

작성한 질문수

질문하기