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

죽창을든뽀로로님의 프로필 이미지
죽창을든뽀로로

작성한 질문수

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

5.9 표현식과 문장

int c=0; 3+(c=1+2); printf("%d\n",c);

작성

·

172

0

출력값이 3이 나옵니다.

버젼마다 다른걸까요 ?

답변 1

0

3 으로 나오는게 정상입니다! 

3 + (c = 1 + 2) 

이 식 자체의 결과는 6 이지만 c 의 현재 값은 무엇일까요? 3입니다.  1+2 결과를 c 에 대입했고 이 c 의 값을 빌려와 3 + 3 하게 되어 6 이라는 결과를 낳은 것인데요, 이건 저 식의 결과일 뿐이지 c 결과는 아닙니다.  c 변수의 값을 바꿔준건!!! c = 1 + 2 여기에서 밖에 없어요!

이런 상태에서 printf("%d\n",c)  이렇게 c 를 출력하셨기 때문에 3 이 나온 것입니다. c 는 3입니다.  "3 + (c = 1 + 2)" 이 전체 식의 결과가 6일 뿐입니다. printf("%d\n", 3 + (c = 1 + 2)) 로 이 식의 결과를 출력했으면 6이 나올겁니다.

감사합니다

죽창을든뽀로로님의 프로필 이미지
죽창을든뽀로로

작성한 질문수

질문하기