Ver Mensaje Individual
  #17 (permalink)  
Antiguo 29/07/2014, 18:56
shikamarucb
 
Fecha de Ingreso: febrero-2014
Mensajes: 107
Antigüedad: 10 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Problema con printf en C

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
No corresponde echarle la culpa al compilador cuando el código está mal construido AUNQUE funcione en algunos casos.
De hecho, esta misma discusión se debe a que existe un comportamiento aparentemente errático, ¿no?

Si uno pudiera mirar la variable numero asi (por ejemplo si el usuario hubiera ingresado "57"

Código pseudo:
Ver original
  1. numero = | 5 | 7 | \0 | basura | basura | basura ... | ... | ultimo caracter

y quieres saber desde que posicion hasta que posicion revisar los numeros, TIENES que partir desde la izquierda

Código pseudo:
Ver original
  1. numero = | 5 | 7 | \0 | basura | basura | basura ... | ... | ultimo caracter
  2.          ------->

no desde la derecha

Código pseudo:
Ver original
  1. numero = | 5 | 7 | \0 | basura | basura | basura ... | ... | ultimo caracter
  2.                                                            <----------------

porque la basura que haya puede interferir en tu lógica.

Aquí da lo mismo la inicializacion de la variable numero, es el recorrido que se hace el problema.
Da lo mismo la inicializacion porque SIEMPRE se esta leyendo algo (con scanf), PERO scanf rellena a numero DE IZQUIERDA A DERECHA.
Leerlo en el otro sentido producirá problemas. Si no los produce es SUERTE (o mala suerte, depende del punto de vista)
Joder ya por fin entendi y tienes toda la razon; yo empece a programar hace 6 meses y sinceramente yo no sabia que al final de una cadena habia un '\0' y hasta me da pena por eso yo creia que daba lo mismo recorrerlo en cualquier sentido y que los numeros basura podian ser todos como -188 pero lo comprobe con un FOR y si puede salir cualquier numero pero lo importante fue que me despejaste todas las dudas y que aprendi. Muchas gracias!!!