질문드립니다.
272
작성한 질문수 9
24:32초 에서
int x = 1, y = 2;
if (x++ > 0 && x + y == 4)
{
printf("%d %d\n", x, y);
}
여기에서 x++가 && 연산자를 만나면 실행이 된다고 하셨는데 그러면 x++>0에서는 1>0 으로 비교를 하고 true가 된 이후에 1이 증가하여 2+2==4 를 비교하게 되는건가요?
아니면 2>0로 비교를하고 2+2==4가 되는건가요..?
답변 3
4
안녕하세요. 답변 도우미입니다.
i++ 이렇게 뒤에 붙는건 기존의 i 값을 먼저 내뱉은 후에 증가가 된다고 생각하시면 됩니다.
즉 a = 3 일때 a++ 는 3 을 내뱉고나서야 4 가 됩니다. 즉 a++ = b 를 한다면 b 에게 기존 a 값인 3 을 건네주고나서야! a 값이 4 로 변경됩니다. 이 연산이 모두 끝나면 a 는 4, b 는 3 이 됩니다.
사실 시스템상 더 정확한 순서를 말씀드리자면
1. a 의 기존 값을 임시 공간에 복사
2. a 값 1 증가
3. 임시 공간에 복사해둔 a의 기존값을 b 가 받게 됨
위와 같은 순서로 이루어집니다.
반면 ++i 이렇게 앞에 붙는건 반대로 증가부터 먼저시킨 후 변경이 된 i 값을 내뱉습니다.
즉, ++a = b 는 b 에게 미리 증가시킨 후의 값을 건네주었기 떄문에 a 와 b 모두 4 가 됩니다.
1
안녕하세요.
먼저 x++같은것을 증감연산자라고 합니다.
증감연산자에는 총 4가지있는데 ++x, x++, --x, x--가 있습니다.
마이너스가 붙는것은 플러스와 중첩됩므로 설명은 생략합니다.
x++는 나중에 1을 더하는것이고 ++x는 먼저 1을 더하는것입니다.
결과적으로 뭐냐면 1>0를 한다음에 2+2==4가 됩니다.
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
47
3
main 함수에서 왜 int만 선언이 되는걸까요
1
52
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
53
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
46
1
프로토타입과 함수간의 인자 불일치
1
72
2
12.12 헤더 관련 질문
1
59
2
Visual Studio Community 2026 사용 문의
1
134
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
59
2
getchar(), putchar()
1
92
3
강의자리ㅛ
1
78
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
112
2
소스파일안에 여러 파일
1
74
2
F5와 F7의 차이
1
75
2
c = TWO * (a+b); 에서 a와 b는?
1
58
2
; 세미콜론을 붙이는 기준에 문의
1
68
1
Step over 기능 문의
1
52
2
2.6 강의 따옴표 출력 규칙 문의
1
74
2
int main 함수 관련 오류 문의
1
67
2
13.4 words[0]
0
60
2
11.7 함수를 구현해 봤습니다.
1
62
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
64
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
53
2
11.6 fit_str함수를 구현해 봤습니다.
1
53
2
11.5 코드 구현
1
67
2





