강의

멘토링

로드맵

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

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

작성한 질문수

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

5.9 표현식과 문장

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

작성

·

188

0

출력값이 3이 나옵니다.

버젼마다 다른걸까요 ?

퀴즈

56%나 틀려요. 한번 도전해보세요!

프로그래밍에서 반복 루프(repetition loop)를 사용하는 가장 주된 이유는 무엇일까요?

프로그램의 길이를 늘리기 위해

동일하거나 유사한 작업을 효율적으로 반복하기 위해

오류 메시지를 확인하기 위해

변수의 선언을 간소화하기 위해

답변 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이 나올겁니다.

감사합니다

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

작성한 질문수

질문하기