게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
어 갑자기 멘붕이 왔어요. ++a와 a++를 동시에 사용할 때
게시물ID : programmer_3335짧은주소 복사하기
작성자 : 냥파스
추천 : 0
조회수 : 520회
댓글수 : 5개
등록시간 : 2014/05/17 22:47:33
저는 ++a랑 a++랑 구분할 때 이런 식으로 구분했거든요?

a++는 a를 리턴하고 a를 1 증가시킨다.

++a는 a를 1 증가시키고 그것을 리턴한다.

지금까지 사용하는데 아무런 문제도 없었고요.

그런데 ㅋㅋㅋㅋ


	a = 0;	printf("%d, %d, %d\n", ++a, a++, a);
	// 예상 : 1, 1, 2	
	// 결과 : 2, 0, 2	
	a = 0;	printf("%d, %d, %d\n", a++, ++a, a);
	// 예상 : 0, 2, 2	
	// 결과 : 1, 2, 2	
	a = 0;	printf("%d, %d, %d\n", a++, a++, a);
	// 예상 : 0, 1, 2	
	// 결과 : 1, 0, 2	
	a = 0;	printf("%d, %d, %d\n", ++a, ++a, a);
	// 예상 : 1, 2, 2	
	// 결과 : 2, 2, 2


뭔가요 이게 ㅋㅋㅋㅋㅋ

한 줄에 두개 이상 쓰면 결과가 이상하게 되네요?ㅋㅋㅋㅋ

앞에부터 차례대로 계산되는 거 아닌가요?

예상이랑 다 달라요 ㅋㅋㅋ

왜 그러죠?



혹시나 printf 함수에서 파라미터 처리할 때 순서대로 안 하나?

해서 다른 방법으로도 해봤는데요.


	a = 0;	printf("%d\n", a++ + a++);
	// 예상 : 1
	// 결과 : 1	
	a = 0;	printf("%d\n", a++ + ++a);
	// 예상 : 2
	// 결과 : 2	
	a = 0;	printf("%d\n", ++a + a++);
	// 예상 : 2
	// 결과 : 3	
	a = 0;	printf("%d\n", ++a + ++a);
	// 예상 : 3
	// 결과 : 4

??

왜 그럴까요.

C 말고 다른 걸로도 해보려다가 안 해봤어요.
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호