Hola, estoy aqui debatiendo con la variable i, y no acabo de entenderla bien, cuando usas el ciclo for, se supone que primero, supongamos que es un programa que escribe 10 numeros del 1 al 10, la inicias en 0, luego menos que 10, y luego haces un incremento. Esa variable entra dentro de la variable, pongamos numero y esa variable hace todo lo que le hemos dicho a i. Pero no entiendo la union. No me cuadra.Gracias.
			
			
			
				Básicamente funciona así
for(inicialización de la variable; codición del ciclo; incremento de la variable)
Te lo puedes imaginar así:
i = 0;
while(i<10)
{
printf("%d\n", i);
i++;
}
OJO no es 100% equivalente, pero es un ejemplo para que te guíes 
			
			
			
				La interpretación del for es: "mientras i sea menor que 10, irás incrementando el valor de i, partiendo desde 0".
			
			
			
				si, pero como funciona la union con el array? eso es lo que no entiendo.
			
			
			
				A qué te refieres con la unión? array? Si es así eso lo que quiere decir es que vas a acceder a la posición i-esima del arreglo.
			
			
			
				Esque mas o menos lo entendia, pero con esa aclaracion ya me ha quedado del todo claro;)
			
			
			
				A ver, la variable de control de un bucle es en sí misma una variable como cualquier otra que se ve alterada conforme un ciclo pueda tener inicio y fin.
Gracias a los ciclos podemos hacer que una variable, por ejemplo la de control, tome un rango de valores: a0, a1, aN
Por ello, podemos hacer un recorrido de una estructura tipo array a través del método de acceso índex o índice. Ya que cada elemento de esa estructura ocupa la posición 0..M-1, 0..N-1, 0..O-1, etc dependiendo de las dimensiones del array. Aunque para hacer arrays N-dimensionales
generalmente se usan punteros.
Ejemplo:
#include <stdio.h>
void main(){
		int lista[10]; // vector de 10 elementos de tipo int
		int i,j=1; // variable de control del ciclo for
		
		/* Rellenamos el vector "lista" con los cuadrados de los primeros
		10 números naturales */
		for ( i=0; i<10; i++ )
			lista[i] = j++*j;
			
		/* Mostramos el vector "lista" con los cuadrados de los primeros
		10 números naturales */
		printf("El vector lista contiene los elementos:");
		for ( i=0; i<10; i++ )
			printf(" %d", lista[i]);
		printf("\n");
}
Ahí tienes un ejemplo de ciclo con array y qué papel juega la variable de control al utilizarla como índice del array.
De todas formas, C, C++, etc. no son buenos lenguajes para aprender a programar.