Hola y bienvenido.
En esta conferencia, quiero hablar sobre la inicialización de una matriz.
Sabemos cómo usar una matriz, sabemos cómo crear una matriz.
Pero específicamente, ¿y si quieres para asignar valores iniciales específicos a la matriz,
¿cómo se hace?
Entonces querrás asignar una inicial valores para los elementos de su matriz la
mayor parte del tiempo.
La razón por la que quieres asignar valores iniciales a
una matriz o incluso a variables es porque facilita la detección cuando las
cosas van mal.
Cuando no tienes datos iniciales e intenta hacer algo, puede causar
problemas en su programa.
Entonces la inicialización es muy buena cosa y siempre quieres hacerlo.
Y usando una matriz, hay muchos, muchos elementos en la matriz.
Y entonces hay una forma específica en la que puede inicializar esos elementos.
Hay diferentes sintaxis que puede utilizar.
Pero la inicialización es algo bueno y siempre quieres hacerlo.
Quería hablar rápidamente de cómo puede hacer una matriz porque hay
diferentes formas de hacerlo.
Así como puede asignar inicial valores a las variables, cuando se
declaran, también puede asignar valores iniciales a los elementos
de una matriz, cuando se declara.
Para inicializar los valores de una matriz, simplemente proporcione los valores en una lista.
La lista está separada por comas. y la lista completa está dentro
de un par de llaves.
Se parece a esto.
Aquí estamos creando un matriz denominada contadores.
Es de tipo int, tiene 5 elementos.
Y luego lo que estamos haciendo es tenemos las llaves y
no estamos usando ningún índice aquí.
Notarás que solo tenemos números separados por comas.
Lo que está haciendo es establecer todos los 5 elementos en la matriz de contadores a
0, cada uno de los elementos es 0.
Si tenemos otra matriz y nombramos esta matriz enteros y también es de tamaño 5
y luego tenemos en nuestro llaves después del operador de
asignación 0 coma 1 coma 2 coma 3 coma 4, ¿qué está haciendo eso?
Está asignando un número entero al primero elemento entero matriz a
0, el segundo elemento a 1, el tercero elemento a 2, el cuarto elemento a 3 y
el quinto elemento a 4.
Es una buena sintaxis donde puedes Inicialice inmediatamente la matriz cuando
la declare simplemente proporcionando números separados por comas entre corchetes
y desea hacer esto.
Tampoco es necesario por completo inicializar toda la matriz.
Entonces en esos 2 anteriores ejemplos, inicializamos los 5 elementos
de una matriz de tamaño 5.
¿Qué pasa si solo quieres inicializar algunos de los valores?
Si proporciona valores iniciales que no son iguales al número del tamaño de la matriz, entonces el los valores restantes se establecen en 0.
Entonces, si haces algo como aquí donde tienes una
matriz llamada datos de muestra de tipo flujo, contiene 500 elementos.
Pero en los tirantes, todos ves aquí están nuestros 3 elementos.
Lo que esto va a hacer es va a
inicializar los primeros 3 valores de la muestra matriz de datos a 100300500. 5.
Y luego los 5 497 restantes los elementos van a ser 0.
Para que no tengas que hacerlo especificar todo.
También existe este concepto de un inicializador designado.
Esto fue introducido creo en C99.
Es una pequeña característica agradable en la que puede elegir los elementos
que desea inicializar.
Creo que en C99, lo agregaron y luego, en C11, lo hicieron opcional.
Entonces, dependiendo de qué compilador tiene, puede o no
puede hacer esto.
Pero quiero mencionarlo porque es algo común.
Algunos compiladores no permitirán debe hacer esto después de C99.
Pero es genial porque puedes en realidad, solo elige y elige.
Entonces puedes encerrar un elemento número en un par de corchetes y luego especifique los elementos
de la matriz que se puede inicializar y puede
hacerlo en cualquier orden.
Así que aquí tienes un ejemplo.
Nuevamente, tenemos nuestra matriz de datos de muestra.
Es de tipo flotador.
Va a tener un tamaño de 500.
Pero aquí dentro de nuestro rizado llaves, tenemos índices adicionales.
Tenemos nuestros corchetes en 2, dice corchetes 2 sub-2 es igual a 500. 5, sub-1 es igual a
300. 0 y sub-0 es igual a 100. 0.
Están separados por comas.
Todo lo que está haciendo es especificar lo mismo que teníamos en el
ejemplo anterior, pero es haciéndolo en un orden diferente.
Pero todavía vas a tienen elementos 0 o el primer elemento igual a
100, el segundo elemento igual a 300 y el tercer álbum igual
a 500. 5.
Pero estamos especificando el qué índice inicializar en
las llaves.
Otro ejemplo aquí tenemos un int matriz llamada arr, es de tamaño 6.
Y cuando lo declaramos, estamos inicializando el quinto elemento
que es el último elemento a 212, todos los elementos van a ser 0.
Así que aquí tienes un ejemplo de inicialización donde simplemente declara
el nombre de su matriz y suministra muchos números diferentes.
En este ejemplo, declaramos una matriz y almacenará
todos los días de cada mes.
Y entonces cuando pasemos por esto matriz y la
imprimimos, lo cual es muy común, normalmente usa bucles para imprimir elementos en una matriz
o al menos iterar sobre ellos.
Lo que estamos haciendo aquí es solo voy a imprimir cada
mes y cuántos días tiene.
Así que repasemos esto en código. bloques para mostrarle la salida.
Así que aquí está nuestro ejemplo.
Tenemos días y meses y estamos inicializando la matriz.
El primer elemento en ser 31, próximos 28, próximos 31.
También se da cuenta de que en la línea 10, estamos usando una definición para crear una constante.
Y, por cierto, en c, también puedes utilizar una palabra clave constante, de la
que hablaremos y otras cosas, otra forma de crear constantes.
Pero ahora mismo solo estamos hablando sobre
arreglos e inicializarlos, muy fácil de hacer, separados por comas dentro de llaves.
Entonces, ¿qué va a mostrar esto? va
a pasar por la matriz y va a mirar índice más 1 y luego índice de días.
Entonces va a decir mes 1 tiene cuántos días dependiendo de los
valores.
Entonces estamos accediendo al índice por el nombre de la matriz y luego el valor
del subíndice, el índice value y estamos usando una matriz.
Entonces es una variable que cambia a través de cada iteración.
Así que intentamos ejecutar esto.
La salida a la que vas a ver es el mes uno tiene 31 días, el mes 2 tiene
28 días representa Enero Febrero Marzo Abril, pero solo pasa por el
matriz e imprime los días fuera.
Entonces esto prueba que el la inicialización funciona.
Y de nuevo querrás para inicializar sus datos.
Ahora hablemos de otro ejemplo y hablar sobre la repetición de
elementos de inicialización.
Así que aquí hay otro ejemplo, pero en este
ejemplo usaremos un inicializador designado.
Vamos a especificar la exacta elementos que queremos inicializar.
Entonces la línea principal que debes aviso aquí es el
que dice en días y meses donde estamos haciendo nuestra inicialización.
Notarás dentro del rizado corchetes
que el primer elemento obtiene 31, el segundo 28, pero luego está
algo entre corchetes que diga 4, obtendrá el valor 31.
Entonces tenemos una coma, el elemento 5 obtendrá 30, el
elemento 6 obtendrá 31.
Y luego tenemos 1.
Esto significa que ahora vamos a sobrescribe el 28, y de hecho vamos a
poner un 29, ponlo como 29.
Entonces es un poco redundante aquí.
Realmente no necesitamos hacer eso pero realmente
quitarías el sub-1 porque 31 y 28, sub-1 ya está asignado aquí.
Pero parece que estamos diciendo sub-1 también puede tener el valor 29.
Así que esto es solo usar el inicializadores designados.
¿Y si queremos repita el mismo valor.
Ahora en c, siempre puedes inicialice toda la matriz del
mismo valor si especifica 0.
Siempre puedes inicializar es como el parámetro nulo.
Pero aparte de eso, c no proporcionar cualquier mecanismo de acceso directo para
inicializar la matriz elementos, al menos no en C89.
Puede ver en C11, de nuevo, donde puede inicializar el mismo valor en toda la
matriz simplemente usando los corchetes sin subíndice solo el número.
Pero ahora mismo en C89 y C99, hay no hay forma de especificar un recuento de repeticiones.
No hay forma de decir todos los elementos de este rayo debería ser 55, por ejemplo.
Entonces, si se deseara inicialmente establecer todos los 500 valores de
los datos de muestra en 1, los 500 tendrían ser asignado explícitamente, lo que sería un
gran dolor de cabeza.
Entonces, lo que terminarás haciendo es solo colócalos dentro de un bucle.
La forma más fácil de iterar a través de una matriz use un bucle.
Bueno, aquí hay un ejemplo rápido de cómo puede inicializar todos los elementos
con el mismo valor.
En este caso, sin embargo, estamos inicializando los
primeros elementos a 0 1 4 9 y 16.
Así que esto es solo inicializar todos los elementos restantes a un valor.
Esencialmente el sexto elemento de la Décimo elemento usando el índice 5 a 9.
Entonces eso es lo que está haciendo este bucle for.
El primer bucle for dice que vamos a inicializar elementos de 5
a 9 para ser I por I.
Y luego el segundo para bucle aquí, debería estar
sangrado, es más difícil de leer.
El segundo bucle for es en realidad pasando por
toda la matriz y simplemente mostrando los datos a mostrarle que los últimos
5 valores fueron realmente inicializados.
Así que cuando quieras repetir el mismo valor o inicializar a
diferentes valores, simplemente use un bucle.
Nuevamente, la inicialización es importante.
Querrás inicializar, así que asegúrese de que esta sintaxis sea una segunda naturaleza
para usted porque estar usando matrices bastante en c.