아주 간단한 C언어 질문드려요^^
햇님
2023.04.01
#include stdio.h
int main(void)
{
int val1=10;
int val2=(val1--)+2;
printf(val1 : %d\n, val1);
printf(val2 : %d\n, val2);
return 0;
}
이걸 실행하면
결과 값이 9하고 12가 나오는데요
12가 나오는건 이해가 되는데 9가 왜 나오죠? val1값을 10으로 지정하고 printf문으로 val1이 나오라고 지정한건데 그럼 10이 나와야 하는게 아닌가요?
-
PrinceSs
val2=(val1--)+2;
↓
val2 = val1 + 2;
val1 = val1 - 1; -
우미
int val2=(val1--)+2; 괄호가 있던없던 val1-- 는 선연산 후감소기때문에 괄호없애고 연산되면 val2는 12가됩니다 후감소기때문에 val1은 10-1이되고 즉 9가되죠
-
아연
( val1-- ) = (val1=val1-1) 이라고봐도 별 탈 없음 탈있으면 어쩔수없구요
-
유라
val1-- 는 왜 빼먹으세요? -_ㅡ;;