• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

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

23.10.29 22:19 작성 23.10.29 22:20 수정 조회수 166

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님의 프로필

Soobak

2023.10.30

안녕하세요, 답변 도우미 Soobak 입니다.


상수 리터럴 3 입니다.

(i++, j = 3) 에서 j = 3 의 연산은 변수 j3 을 대입하고, 그 대입 연산의 결과로 할당된 값인 3 을 반환합니다.

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

답변 감사드립니다!!