안녕하세요 길벗수험서 운영팀입니다.
전치/후치 연산에서 전 후의 개념이 하나의 '식'에만 적용됨을 말씀드렸었습니다.
printf문은 하나의 식에 해당합니다.
t+=n;
printf( ~ , ++n, t); 는 바꿔 보면
t+=n;
n=n+1;
printf(~, n, t); 가 되는 것이죠.
말씀하신 코드의 n= ++n의 경우 n의 값이 1 증가하는 것은 맞으나,
n=n=n+1 같은 의미가 되어 버리므로 '++n;'만 적는 것이 적합합니다.
t+=n;
++n;
printf(~, n, t);
이 경우에는 이전에 답변드린 것과 같이 ++n;은 세미콜론으로 구분되는 단일 식이기 때문에 n=n+1과 동일합니다. n++;이 들어가도 동일한 결과가 나타나게 되며, 초기 출력은 n=1, t=0 ~ 마지막 출력은 n=10, t=45 가 될 것입니다.
행복한 하루되세요 :)
-
관리자2020-08-06 13:11:22
안녕하세요 길벗수험서 운영팀입니다.
전치/후치 연산에서 전 후의 개념이 하나의 '식'에만 적용됨을 말씀드렸었습니다.
printf문은 하나의 식에 해당합니다.
t+=n;
printf( ~ , ++n, t); 는 바꿔 보면
t+=n;
n=n+1;
printf(~, n, t); 가 되는 것이죠.
말씀하신 코드의 n= ++n의 경우 n의 값이 1 증가하는 것은 맞으나,
n=n=n+1 같은 의미가 되어 버리므로 '++n;'만 적는 것이 적합합니다.
t+=n;
++n;
printf(~, n, t);
이 경우에는 이전에 답변드린 것과 같이 ++n;은 세미콜론으로 구분되는 단일 식이기 때문에 n=n+1과 동일합니다. n++;이 들어가도 동일한 결과가 나타나게 되며, 초기 출력은 n=1, t=0 ~ 마지막 출력은 n=10, t=45 가 될 것입니다.
행복한 하루되세요 :)