해결된 질문
작성
·
216
·
수정됨
3
안녕하세요
수업 중에 4:36 부분에서 궁금한 내용이 있어서 질문드립니다.
위키피디아에서
컴마 연산자를
첫 번째 피연산자를 평가한 후 그 결과를 버린 다음,
두 번째 피연산자를 평가하고 그 결과를 반환하는 이항 연산자라고 정의하는 것을 확인했습니다.
https://en.wikipedia.org/wiki/Comma_operator
int i, j;
i = 1;
printf("%d", (i++, j = 3)); // 결과 : 3
그럼 위 코드에서 반환하는 결과값은
(i++, j = 3)의 결과값은 변수 j인가요 아니면 상수 리터럴 3인가요...???
답변 1
2
안녕하세요, 답변 도우미 Soobak 입니다.
상수 리터럴 3
입니다.
(i++, j = 3)
에서 j = 3
의 연산은 변수 j
에 3
을 대입하고, 그 대입 연산의 결과로 할당된 값인 3
을 반환합니다.
변수 j
는 값 3
이 할당된 위치를 가리키는 변수입니다.
답변 감사드립니다!!