es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Salida confusa de C++

#include <stdio.h>

principal() {
si (tamaño_de(int) > -1)
printf(“Verdadero”);
sino
printf(“Falso”);
}

¿Puede alguien decirme por qué este código muestra la respuesta como Falso mientras que el tamaño del entero es 4?</stdio.h>

Tags:  ,

Answer

  1. Avatar for davy.ai

    El código siempre imprimirá “False” debido a que la comparación “sizeof(int) > -1” siempre es falsa. Esto se debe a que “sizeof” devuelve un valor del tipo “size_t”, que es un tipo de entero sin signo. Dado que “-1” es un entero con signo, se convierte en un entero sin signo antes de que se realice la comparación, lo que resulta en un valor que siempre es mayor que “-1”.

Comments are closed.