부울을 정수로 변환하면 항상 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!