Notas de estudio de matriz de aprendizaje de lenguaje C

Hola a todos, soy un Disheng que no sabe nada. Hoy aprendí la variedad del lenguaje C, compartámoslo.

 

El mejor momento para plantar un árbol grande es hace diez años, seguido del ahora.

Alegrémonos y aprendamos juntos ~ O (∩_∩) ~

 

Por favor, indique cualquier error, ¡gracias!

La mayoría de las variables en lenguaje C tienen la capacidad de almacenar un solo dato (llamado escalar), y hay otro tipo de datos llamado variable agregada, que puede almacenar un grupo de datos. Hay dos tipos de agregación en lenguaje C, uno es estructura, el otro es una matriz.

Matriz unidimensional

1. Definición: Una matriz es una estructura de datos que contiene múltiples valores de datos y cada dato tiene el mismo tipo de datos (tipo unificado).

2. Declaración de matriz: la declaración de matriz debe declarar su tipo y cantidad. Por ejemplo: int a [10]; Esto es para declarar una matriz, que tiene 10 elementos de tipo int.

El tipo de la matriz puede ser cualquier tipo. Simplemente modifique la declaración int anterior. La longitud de la matriz se puede representar mediante cualquier constante entera. Después de C99, también se puede representar mediante una variable entera (también puede usar una macro y use una definición constante, aquí no entraré en detalles http://c.biancheng.net/view/217.html, puede ver este enlace (intrusión), porque es posible que sea necesario ajustar la longitud de la matriz cuando el programa cambie en el futuro, la mejor manera es usar variables para Indica su longitud.

3. Subíndice de matriz:

Para poder acceder a elementos específicos de la matriz, puede usar corchetes para agregar un número entero después de escribir el nombre de la matriz. Este valor entero es el valor del subíndice y también el valor del índice.

¡Cabe señalar que el valor del subíndice de esta matriz comienza desde 0!

Por ejemplo, int a [10]; Esta matriz a es de un [0] a un [9]. El índice de un elemento de matriz de longitud n es de 0 a n-1 (en este caso, siempre se desvía un bit)

(¡El recorrido no necesita cruzar el límite, más allá del rango del subíndice, hará que sucedan cosas indefinidas!)

4. Array tips: tres expresiones idiomáticas que se utilizan junto con los bucles for:

for (i = 0; i < N ;i++)
    a[i] = 0;
//以上为清零操作
for (i = 0; i < N; i++)
    scanf("%d",&a[i]);//注意scanf里面数组前也要用&
//以上是把数据存入数组a
for (i = 0; i < N; i++)
    sum += a[i];
//计算一些数字的和

5. Inicialización de matriz:

Como otras variables, el grupo de elementos debe recibir un valor inicial cuando se declara.

Hay muchos tipos de métodos de asignación, los siguientes son los básicos

(1). Utilice llaves para encerrar expresiones constantes: int a [5] = {1,2,3,4,5}

int a [5] = {1,2,3} es equivalente a int a [5] = {1,2,3,0,0} Es decir, si la fórmula de inicialización es más corta que la matriz, los elementos restantes en el grupo principal son 0 (¡pero es ilegal que el inicializador sea más largo que la longitud de la matriz!)

Utilice las funciones anteriores para int a [5] = {0}; tenga en cuenta que {} no puede estar vacío.

(2). Especifique la fórmula de inicialización

Considere el siguiente ejemplo

int a [8] = {0,0,2,0,3,0,0,0}

Espero que a [2] = 2, a [4] = 3, podamos int a [8] = {[2] = 0, [4] = 3}; Este método es usar el indicador para asignar int a [ 8] = {[ 2 ] = 0, [ 4 ] = 3}; Los 2, 4 entre corchetes son indicadores, que deben ser expresiones constantes enteras.

6. El operador sizeof de la matriz (muy útil)

El operador sizeof puede calcular el tamaño del grupo de elementos (calculado como un número de bytes), podría pensar, ¡esto tiene algo que ver conmigo! De todos modos, lo pensé por primera vez, hablemos de su uso.

Mira una fórmula primero 

int a[10] = {0};

for (i = 0; i < sizeof(a)/sizeof(a[0]);i++)
{a[i] = 0;


}

sizeof (a) / sizeof (a [0]) representa la longitud de la matriz, a menudo usamos esta expresión cuando necesitamos la longitud de la matriz

Sin embargo, algunos compiladores pueden advertir sobre sizeof (a) / sizeof (a [0]) porque el tipo de variable i puede estar firmado y el resultado de sizeof es un tipo sin signo.

Por supuesto, si lo desea, puede (int) sizeof (a) / sizeof (a [0]) para forzar la conversión de tipo

7. Puntos a tener en cuenta al transferir parámetros

Cuando se usa una matriz como un parámetro de función, se debe usar otro parámetro para pasar el tamaño de la matriz x, porque sizeof no se puede usar para calcular el número de elementos de la matriz al declarar un parámetro de función.

Declare que la función es el parámetro a [] ¡No puede haber nada entre corchetes!

8. Matriz multidimensional

1. Definición: La matriz puede tener cualquier dimensión, como una matriz bidimensional (matriz en matemáticas) int a [5] [8] declarada a continuación; la matriz tiene 5 filas y 8 columnas, cuando dicha matriz accede a sus elementos Todos están escritos en forma de i [m] [n].

2. Inicialización de matriz multidimensional:

#include<stdio.h>

int main()
{
	int a[5][6] = 
	{
   
   {1,2,3,4,5,6},
	 {2,0,0,0,0,0},
	 {3,0,0,0,0,0},
	 {4,0,0,0,0,0},
	 {5,0,0,0,0,0}};
	 
	 printf("%d",a[0][2]);
	
}

El método anterior es inicializar la matriz multidimensional. Hay muchos métodos. También puede poner una gran cantidad de datos en uno {} y escribir una línea larga y grande, porque al guardar, cada línea se almacenará directamente desde la siguiente línea después de que esté lleno, pero esto no es intuitivo (de hecho, la matriz bidimensional está esencialmente organizada en una gran fila de elementos)

int a [4] [5] = { {0,1,2,3,4}, {10,11,12,13,14}, {20,21,22,23,24}, {30,31 , 32,33,34}};

 

 

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/qq_51182221/article/details/114966266
Recomendado
Clasificación