Saltar al contenido

Sumersión profunda en los fundamentos de la matriz Parte 1

La declaración es un proceso de definición de un nombre de poseedor de lugar precedido por su tipo y los arreglos se declaran con paréntesis rectangulares como

12tipo[] nombre_de_lugar;char[] libro;

csharp

Sumersión profunda en los fundamentos de la matriz Parte 1
Sumersión profunda en los fundamentos de la matriz Parte 1

Inicialización significa asignar memoria a los objetos con la ayuda de una nueva palabra clave o un inicializador de matriz.

12nombre_de_lugar =nuevo_tipo_de_datos[tamaño_de_arreglo];libro =newchar[4];

csharp

Inicializadores de matrices : Las matrices también pueden ser declaradas usando la lista de inicialización {elementos de la matriz separados por una coma} y es adecuado cuando se tienen los datos al declarar la referencia de la matriz. por ejemplo, crear una matriz de longitud 4 con valores como A, B, C, D.

123char[] array =newchar[]{$0027A$0027,$0027B$0027,$0027C$0027,$0027D$0027};char[] array ={$0027A$0027,$0027B$0027,$0027C$0027,$0027D$0027};char[] array =new[]{$0027A$0027,$0027B$0027,$0027C$0027,$0027D$0027};

csharp

Matriz de tipos implícitos : var es el marcador de posición de tipo variable (introducido en C# 3) cuyo tipo se puede obtener del lado derecho de la expresión utilizando la inferencia de tipo que nos permite eliminar el tipo de datos explícitos. Los ejemplos anteriores pueden ser declarados usando var as:

1234var array =newchar[4];// crea un array de longitud 4var array =newchar[4]{$0027A$0027,$0027B$0027,$0027C$0027,$0027D$0027};var array =newchar[]{$0027A$0027,$0027B$0027,$0027C$0027,$0027D$0027};var array =new[]{$0027A$0027,$0027B$0027,$0027C$0027,$0027D$0027};

csharp

No se puede usar un inicializador de matrices con la palabra clave var, por lo que var array = { $0027A$0027, $0027B$0027 , $0027C$0027, $0027D$0027 }; es inválido. El equipo de diseño decidió evitar el uso del inicializador de matrices y sus efectos secundarios en el analizador para evitar el análisis de bloques anidados de {}. La solución fue el uso de una nueva palabra clave con var para la sintaxis de los tipos implícitos.

Asignación de memoria

La memoria principal está dividida en secciones lógicas separadas y un montón se conoce como memoria dinámica. Lo que significa que la memoria solicitada en tiempo de ejecución está asignada en el “heap”.

La memoria para los arreglos se asigna de manera continua. Esto significa que si se crea un arreglo de cuatro elementos char, la aplicación asignará: En un sistema operativo de 32 bits, char es de 2 bytes y 4 bytes para la variable de referencia, así que (2 * 4) + 4 = 12 bytes En un sistema operativo de 64 bits, char es de 2 bytes y 8 bytes para la variable de referencia, así que (2 * 4) + 8 = 16 bytes y puede almacenarse en la dirección de memoria 2000 a 2008 (2008 es exclusivo), así:

12345678910index direcciones DataMemory _____0| A |4000<= nombre de la matriz || apuntando a la dirección inicial1| B |4002||2| C |4004|_____|3| D |4006|_____|

csharp