>백엔드 개발 >C++ >부울을 정수로 변환하면 항상 0 또는 1이 나오나요?

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

Linda Hamilton
Linda Hamilton원래의
2024-12-01 03:39:19427검색

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)에서는 다음과 같이 명시적으로 명시합니다. "rvalue는 bool 유형은 int 유형의 rvalue로 변환될 수 있으며 false는 0이 되고 true는 1이 됩니다."

C:

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

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

위 내용은 부울을 정수로 변환하면 항상 0 또는 1이 나오나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.