"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 부울을 정수로 변환하면 항상 0 또는 1이 나오나요?

부울을 정수로 변환하면 항상 0 또는 1이 나오나요?

2024년 11월 18일에 게시됨
검색:283

Does Converting a Boolean to an Integer Always Result in 0 or 1?

부울을 정수로 변환할 때 항상 0 또는 1이 될 수 있습니까?

부울 값을 정수로 변환할 때 많은 컴파일러에서 겉보기에 0 또는 1만 유지하므로 이 동작의 신뢰성에 대한 의문이 제기됩니다. 예를 살펴보겠습니다.

int a = 2;
bool b = a;
int c = 3   b; // What is the result? 4 or 5?

답변: 예, bool은 정수로 변환될 때 0 또는 1이 보장됩니다.

C에서 :

C 표준(§4.5/4)은 다음과 같이 명시적으로 명시합니다. "bool 유형의 rvalue는 다음과 같이 int 유형의 rvalue로 변환될 수 있습니다. false는 0이 되고 true는 1이 됩니다."

In C:

값이 _Bool로 변환되면 0 또는 1이 됩니다(§6.3.1.2/1 ): "스칼라 값이 _Bool로 변환될 때 값이 0과 같으면 결과는 0입니다. 그렇지 않으면 결과는 다음과 같습니다. 1."

int로 변환할 때 int는 0과 1을 보유할 수 있으므로 값이 변경되지 않으므로 프로세스가 간단합니다(§6.3.1.3).

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3