"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > En C ++ y C, ¿siempre es 0 o 1 cuando se convierte en un entero?

En C ++ y C, ¿siempre es 0 o 1 cuando se convierte en un entero?

Publicado el 2025-04-13
Navegar:231

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

Bool Conversion a int: garantizado para ser 0 o 1?

en lenguajes de programación como C y C, Bool se usa comúnmente para representar los valores booleanos de verdadero y falso. Sin embargo, detrás de escena, estos valores a menudo se almacenan como enteros. Esto plantea la pregunta: cuando un bool se convierte a un int, ¿se garantiza que el resultado sea 0 o 1?

c

en c, la respuesta es un resonancia que sí. De acuerdo con el estándar C (§4.5/4), "un rValue de tipo bool se puede convertir en un rValue de tipo int, con falso convertirse en cero y verdadero convirtiéndose en uno". Esto significa que cuando un bool se convierte en un int en C, el resultado siempre será 0 o 1.

c

en c, la situación es ligeramente diferente pero igualmente clara. De acuerdo con el estándar C (§6.3.1.2/1), "Cuando cualquier valor escalar se convierte en _bool, el resultado es 0 si el valor se compara igual a 0; de lo contrario, el resultado es 1." Esto implica que cuando un bool (representado como _bool en c) se convierte en un int, el resultado será nuevamente 0 o 1.

ejemplo práctico

para ilustrar este comportamiento en el código:

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

En este ejemplo, la variable BOOL B se inicializa al valor de int a (que es 2), pero dado que los valores de bool se almacenan como 0 o 1, b se convierte en 1. La adición posterior de 3 resultados en C se asigna el valor 4. Esto confirma que BOOL se convierte a IN como 1, garantizando un resultado de 0 o 1.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3