• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

3.6 논리 연산자 logical operators 19분

22.06.18 23:06 작성 조회수 94

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

강민철님의 프로필

강민철

2022.06.19

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

Pikkachu님의 프로필

Pikkachu

질문자

2022.06.19

답변 감사합니다 :)