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 중국어 웹사이트의 기타 관련 기사를 참조하세요!