>백엔드 개발 >C++ >C와 C에서 Bool을 Int로 변환하는 것은 항상 0입니까 아니면 1입니까?

C와 C에서 Bool을 Int로 변환하는 것은 항상 0입니까 아니면 1입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-15 08:41:03454검색

Is Bool Conversion to Int Always 0 or 1 in C   and C?

Bool을 Int로 변환: 0 또는 1이 보장되나요?

C 및 C와 같은 프로그래밍 언어에서 bool은 일반적으로 다음을 나타내는 데 사용됩니다. true와 false의 부울 값입니다. 그러나 이면에서는 이러한 값이 정수로 저장되는 경우가 많습니다. 이는 다음과 같은 질문을 제기합니다: bool이 int로 변환될 때 결과는 0 또는 1이 보장됩니까?

C

C에서 대답은 다음과 같습니다. 확실히 그렇습니다. C 표준(§4.5/4)에 따르면 "bool 유형의 rvalue는 int 유형의 rvalue로 변환될 수 있으며 false는 0이 되고 true는 1이 됩니다." 즉, C에서 bool을 int로 변환하면 결과는 항상 0 또는 1이 됩니다.

C

C에서는 상황이 약간 다릅니다. 그러나 똑같이 명확합니다. C 표준(§6.3.1.2/1)에 따르면 "스칼라 값이 _Bool로 변환될 때 값이 0과 같으면 결과는 0이고, 그렇지 않으면 결과는 1입니다." 이는 bool(C에서 _Bool로 표시됨)이 int로 변환되면 결과가 다시 0 또는 1이 됨을 의미합니다.

실제 예

설명하기 코드에서의 동작:

int a = 2;
bool b = a;
int c = 3 + b; // 4

이 예에서 bool 변수 b는 값으로 초기화됩니다. int a(2)이지만 bool 값은 0 또는 1로 저장되므로 b는 1이 됩니다. 이후 3을 더하면 c에 값 4가 할당됩니다. 이는 bool이 int로 1로 변환된다는 것을 확인시켜 줍니다. 0 또는 1의 결과입니다.

위 내용은 C와 C에서 Bool을 Int로 변환하는 것은 항상 0입니까 아니면 1입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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