C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[49138] Re:Re:간단한 증가연산자 질문요...
초보대왕 [sauron] 982 읽음    2007-05-01 22:38
이것은 이식성이 없는 코드입니다.

-- 2 에서 ++ 를 4번 하면 6이 되죠.

2 를 4 번 ++ 하면 6 이 되는 것은 맞는데
4 개의 ++a 값이 모두 6 이 되는 것을 보장하지는 않습니다.
순서대로 3,4,5,6 이 될 수도 있고 6,5,4,3 이 될 수도 있읍니다.
즉 6,6,6,6 이 아닐 수도 있다는 것이지요.
심지어는 C 와 C++ 의 사양의 차이로 인해 C 와 C++ 에서의 결과값이 다를 수 있죠.

컴파일러를 바꾸거나 리눅스에서 테스트해보면 금방 알 수 있읍니다.
시험삼아 아래 코드도 컴파일러를 바꾸어나 리눅스에서 실행시켜보세요.

a=2;
cout<<++a<<++a<<++a<<++a<<endl;

그러면 좀 확실해질 겁니다.


이정구 님이 쓰신 글 :
: C 에서는 ++ 연산자가 + 연산자보다 우선순위가 높습니다.
:
: 따라서 ++ 를 4번 하고 그 다음에 + 를 4번하게 됩니다.
:
: 2 에서 ++ 를 4번 하면 6이 되죠. 그리고 그 6을 4번 + 하면 24 가 됩니다.
:
: 광합성 님이 쓰신 글 :
: : a = 2;
: : b = ++a + ++a + ++a + ++a;
: :
: : b가 볼랜드에서는 왜 24가 되나요??
: : 그리고 다른 비쥬얼이나 차이점은 무엇인가요?

+ -

관련 글 리스트
49136 간단한 증가연산자 질문요... 광합성 879 2007/05/01
49137     Re:간단한 증가연산자 질문요... 이정구 1023 2007/05/01
49138         Re:Re:간단한 증가연산자 질문요... 초보대왕 982 2007/05/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.