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

쉽지않네님의 프로필 이미지
쉽지않네

작성한 질문수

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

6.11 콤마 연산자

6.11강 4:36 부분에서 질문이 있습니다.

해결된 질문

작성

·

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 의 연산은 변수 j3 을 대입하고, 그 대입 연산의 결과로 할당된 값인 3 을 반환합니다.

변수 j 는 값 3 이 할당된 위치를 가리키는 변수입니다.

쉽지않네님의 프로필 이미지
쉽지않네
질문자

답변 감사드립니다!!

쉽지않네님의 프로필 이미지
쉽지않네

작성한 질문수

질문하기