엉뚱한 질문에 관심을 가져줘서 감사요 ㅎ
알아본 바로는 , 는 가장 낮은 연산 우선순위를 갖는다고 합니다...
그리고 좌측 우선순위라네요...
가령 아래에 제가 예를 든 경우를 보면
int s = (1,135);
최초에 1이 대입대고 연이여 135가 대입이 된다고 하네요...
두번째 예로 든것을 보면
int s = (1,035);
최초에 1이 대입대고 연이어 035, 즉 8진수이므로 10진수로 변환을 하면 29가 대입됩니다.
새로 예를 추가 한다면
int s = (1,0x10);
s 는 16이라는 값을 가지더군요...
이 정의 부분에 대한 것은 간단한 비트 연산을 설명할 때 나온 부분 이었답니다.
신기하게도 컴파일 에러도 생기지 않고 궁금해서 질문을 올렸답니다.
그럼 좋은 하루 되세요.
남병철.레조 님이 쓰신 글 :
: 음.. 어떤 경우에 사용한 것인가요?
: 035의 경우는 8진수로 처리되어 그런것이고...
: , 는 처리를 구분하는데 사용할 수 있겠지만... (우측부터 처리되니 가장 우측값이 나오네요.)
: 하지만 저도 왜 저렇게 쓴건지 모르겠네요. ^^;
: 어떤 목적의 프로그램에서 사용한 것인가요?
:
:
:
: 진수.네모 님이 쓰신 글 :
: : 당황 스럽게도 다음과 같은 변수 초기화 구문을 보았답니다.
: :
: : 컴파일 에러도 발생하지 않으며, 또한 실행도 됩니다.
: :
: : 다만, 예상했던 결과가 나오지 않네요...
: :
: : int s = (1,135);
: : cout << s;
: :
: : 하면 135 가 나옵니다.
: :
: : int s = (1,035);
: : cout << s;
: :
: : 하면 29 가 나옵니다.
: :
: : 여러 가지 경우를 해보면 참 신기하게 나옵니다.
: :
: : 이런 문법이 있는지 궁금합니다.
|