Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/01/2016, 03:25
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Duda bucle for

Como rectificar es de sabios, añado ciertas correcciones que afectan a la respuesta que di originalmente.

Desde el estándar C99 sí es posible declarar variables dentro de los bucles, por lo que la siguiente estructura debería ser compilable también en C:

Código C:
Ver original
  1. for(int i=0; i<10; i++)
  2. {
  3.   int j=i*2;
  4.   printf("%d%d\n",i,j);
  5. }

Además, debido a que los lenguajes también evolucionan, empieza a no ser estándar utilizar los tipos de toda la vida (int, unsigned int, char, long, etc).

Para crear código más legible existe la librería stdint.h que incluye un tipado bastante más preciso:
  • Enteros con signo: int8_t (char), int16_t (short/int), int32_t (int/long), int64_t (long long)
  • Enteros sin signo: uint8_t, uint16_t, uint32_t, uint64_t

¿Por qué es mejor usar estos tipos? El tipado es más preciso (nos permite conocer de antemano el tamaño de la variable) y más legible ( mejor uint64_t que unsigned long long, no?)

Volviendo al código inicial y aplicando lo que acabo de comentar, sería entonces más correcto escribir lo siguiente:

Código C:
Ver original
  1. for(int32_t i=0; i<10; i++)
  2. {
  3.   int32_t j=i*2;
  4.   printf("%d%d\n",i,j);
  5. }

Que si, que el "profe" de turno puede decir que hay que usar int porque es lo que el conoce y son sus normas... pero recordad que hay vida después de la universidad y que esa vida no suele quedarse congelada en un punto determinado... yo creo que lo suyo es conocer tanto lo nuevo como lo antiguo para poder elegir siempre la mejor opción.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.