unsigned int a=0; --a; signed int b=30;
... .....
if( a >b) { ...... } else { .... }
이런식의 구문이 있다면 if (a>b)는 어떻게 작동하게 되죠?
a가 unsigned int 이니 unsigned int 형식으로 비교가 이루어지는건가요?
예, 그렇습니다. 산술형의 형변환에 대한 규칙은 좀 복잡해서 저도 외우지는 못하지만 둘 중에서 "더 큰 타입"으로 변환된다고 생각하면 대충 맞습니다. double > float > long > int, unsigned > signed 정도 되지요. (기술적으로 정확한 표현은 아닙니다.)
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
예, 그렇습니다. 산술형의 형변환에 대한 규칙은 좀 복잡해서 저도 외우지
예, 그렇습니다. 산술형의 형변환에 대한 규칙은 좀 복잡해서 저도 외우지는 못하지만
둘 중에서 "더 큰 타입"으로 변환된다고 생각하면 대충 맞습니다.
double > float > long > int, unsigned > signed 정도 되지요.
(기술적으로 정확한 표현은 아닙니다.)
댓글 달기