Entonces cuando creamos otra variables tipo int, en este caso int T; T = 8;, cuando asignamos un valor que es 8, ese valor ocupa la posición 8 del array numeroDeCoches[10];
y cuando lo inicializamo c, pero se imprime ya que la variable T esta en la posición 8 de array.
No, la variable T no está en ninguna posición del array. Es una variable independiente, que tiene un valor, en este caso 8.
Dicha variable, tu puedes utilizarla según tus necesidades.
La puedes usar para hacer una operación aritmética:
int resultado = 100 * T;La puedes usar en una expresión condicional, ya sea para un IF:
if ( T == 8 )
.......;
else
.......;....para un bucle:
for (int i = 0; i < T; i++)
........;o utilizarla para cualquier otra cosa que se nos venga a la mente, y que entre dentro de las posibilidades de una variable de tipo int... incluido como ya hemos visto, para
apuntar a las posiciones de un array:
numeroDeCoches[T] = 5;Ahí estamos usando la variable T para apuntar a una posicion del array, pero esto no implica que la variable T esté ligada al array, o que forme parte de este.
La variable T es totalmente independiente del array, no tiene nada que ver con él, pero como tiene un valor numérico de tipo int, nos puede servir si así lo deseamos para apuntar a la posición de un elemento del array.
En esa línea le estamos diciendo que se vaya al elemento indicado por el valor de la variable T, en este ejemplo 8, y que ahí asigne un 5.
Pero tras esta instrucción, la variable T sigue teniendo valor 8 y sigue siendo ajena al array de manera que se puede seguir utilizando para otras operaciones cualquiera.
Para apuntar posiciones de elementos en un array, tenemos que usar un valor entero dentro de los corchetes [ ]
Este valor entero, de tipo int, podemos obtenerlo de donde nos de la gana, según necesitemos.
Podemos indicarlo directamente:
numeroDeCoches[8] = 5;Podemos usar una variable:
numeroDeCoches[T] = 5;Podemos usar el resultado de una operacion aritmética:
numeroDeCoches[4+4] = 5;Podemos usar el valor que nos devuelva una función (puede que aún no hayas visto funciones):
numeroDeCoches[obtener_enteros_al_azar()] = 5;Es decir, dentro de los corchetes tenemos que proporcionar
un valor int.
Y para ello podemos utilizar cualquier expresión, elemento o porción de código cuyo resultado final sea eso,
un valor int.
Y esto no implica que dicha expresión, elemento o porción de código esté ligado o relacionado con el array. Simplemente aprovechamos el valor int que nos proporciona para apuntar a un elemento del array.
Solo hay dos limitaciones en este aspecto:
1) El valor int ha de ser
positivo, es decir 0 o mayor que 0.
Esto dará error:
numeroDeCoches[-8] = 5;2) El valor int ha de ser inferior al tamaño del array.
En este ejemplo, el array tiene un tamaño de 10 elementos, por lo tanto sus posiciones se enumeran del 0 al 9.
Si le indico un numero cualquiera fuera de ese rango, se producirá una excepción (un error) durante la ejecución del programa y este dejará de funcionar.
Así que como hemos dicho, podemos obtener los valores int para apuntar a las posiciones de donde queramos, pero siempre que sepamos con seguridad que el valor int que vayamos a obtener, sea inferior al tamaño del array y que sea un numero positivo.
Por ejemplo, esta linea:
numeroDeCoches[obtener_enteros_al_azar()] = 5;Es correcta y cualquier compilador C/C++ la dará por buena. Pero
es peligrosa.Se supone que la función
obtener_enteros_al_azar() es una porción de código que hemos escrito por separado y que se encarga únicamente de proporcionarnos valores int al azar.
Si la hemos programado para que nos de enteros entre 0 y 9, que es el rango admitido por el array
numeroDeCoches, no habrá problema.
Pero si la hemos programado para que nos de cualquier valor int posible al azar, pues el programa fallará porque puede darnos valores fuera de ese rango.