c언어 operator 관련 질문
조회수 354회
include < stdio.h>
int main(void){
a=63, b=1, c=11, d=8, e=28;
d %= c += 5 - d--;
printf("%d %d %d %d %d", a,b,c,d,e);
return 0;}
으로 코드를 돌렸을 때 d의 값이 -1이 나오는 이유는 뭘까요?
손으로 계산할 때는 7이 나왔는데 visual studio 로 구현하면 -1이 나옵니다.
-1이 나오는 원리가 궁금합니다~
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
d %= c += 5 - d--;
은 아래의 두줄을 순차적으로 실행한 것과 같습니다.
d%=(c+=5-d); d--;
그럼 아래와 같이 풀어 가시면 됩니다.
d%=(c+=5-d);
에서d
가 8이므로d%=(c+=(-3))
이 되고,c
가 11 이므로c+=(-3)
에서c
는 8이 됩니다.따라서 위의 식은 아래와 같이 됩니다.
d%=8; d--;
d
가 8이므로d%=8
에서d
는 0이 되고, 그 후d--
에서 최종적으로d
의 값은 -1이 됩니다.-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력