오늘 전 증가 및 사후 증가를 재검토했습니다.사전 증가 및 사후 증가
기본 정의 내가 아는 바.
사전 증가 - 값을 증가시키고 값을 반환합니다.
게시물 증가 - 값을 증가시키고 증가하기 전에 값을 리턴합니다.
하지만 그 중 일부 조합을하는 것은 난처한 상황입니다.
기본 C 프로그램을 사용하여 테스트 한 내용은 다음과 같습니다.
처음에는 i = 0입니다.
1 차 시험
printf("%d %d",++i,++i);
OUPUT :
2 2
내가 예상 :
1 2
2 차 시험
,451,515,printf("%d %d",i++,i++);
OUPUT :
1 0
내가 예상 :
0 1
3 테스트
printf("%d %d",i++,++i);
OUPUT :
1 2
내가 예상 :
0 2
4 테스트
printf("%d %d",++i,i++);
OUPUT :
2 0
내가 예상에게 :
1 1
오른쪽 또는 왼쪽에서 평가 한 것 같습니다. Pre Increment &의 경우 왼쪽에서부터 증가 할 수 있습니다. 어쩌면 사전 증가가 포스트 증가보다 우선 순위가 높을 수도 있습니다. 결과와 일치하는 아이디어가 있지만 한 테스트에서 가정 한 결과는 다른 결과를 설명하지 못합니다.
정의되지 않은 동작입니다. – chris
C와 관련하여 [이 구성 요소는 왜 정의되지 않은 동작입니까?] (http://stackoverflow.com/q/949433/1708801) 및 [printf ("% d % d", C++, c)의 출력입니까? 또한 정의되지 않았습니까?] (http://stackoverflow.com/q/10845122/1708801) –
'int before = i ++; printf ("% d % d \ n", 앞에, i);'는 정의되지 않은 동작을 제거합니다. – 5gon12eder