-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
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++를 진행한다.
맞을까요?
답변을 작성해보세요.
0
답변 1