¿Por qué "sizeof (a? True: false)" da una salida de cuatro bytes?
Tengo un pequeño código sobre elsizeof
operador con el operador ternario:
#include <stdio.h>
#include <stdbool.h>
int main()
{
bool a = true;
printf("%zu\n", sizeof(bool)); // Ok
printf("%zu\n", sizeof(a)); // Ok
printf("%zu\n", sizeof(a ? true : false)); // Why 4?
return 0;
}
Salida (CCG):
1
1
4 // Why 4?
Pero aquí,
printf("%zu\n", sizeof(a ? true : false)); // Why 4?
el operador ternario regresaboolean
tipo y tamaño debool
tipo es1
byte en C.
Entoncespor quesizeof(a ? true : false)
dar una salida de cuatro bytes?