Artículos de matriz unidimensional de matriz de lenguaje C

Prólogo: este artículo se utiliza principalmente para revisión personal, la búsqueda de la simplicidad, gracias por su referencia, comunicación y manejo, y puede continuar siendo revisado y mejorado en el futuro.

Debido a que es una revisión personal, habrá algo de compresión y omisión.

matriz: una colección de elementos del mismo tipo

1. matriz

1. Defina una matriz unidimensional:

int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整型数组,最多可以放10个元素

Tenga en cuenta que el código anterior es un elemento, no necesariamente un elemento entero.
p.ej. 

Se puede ver que incluso si se coloca un carácter, el compilador aún no informa un error y se ejecuta normalmente, imprimiendo el valor del código ASCII del carácter a.

2. El valor de la matriz cuando se crea

Cuando se crea la matriz, si solo se proporciona el tamaño de la matriz y no se inicializa, el valor que contiene será un valor aleatorio

  Si es así, todos los valores de la matriz se inicializarán a 0. Cuando se crea e inicializa una matriz, se deduce su tamaño.

#include <stdio.h>
int main()
{
    int arr[10] = { 0 };
    //当然,这样也可以
    int arr[10] = { 0 , 0 };

    //这样是不可以的,不要觉得是0就可以为所欲为
    int arr[5] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

    //如果这样写
    int arr[10] = { 1, 2, 3 };
    //这样是不完全初始化,即数组前三个元素分别初始化为1,2,3,其余元素均默认为0

    return 0;
}

En el siguiente caso, cuando solo se da el valor sin el tamaño de la matriz, la matriz calculará el tamaño por sí misma

Cuando se crea la matriz, la especificación del tamaño de la matriz requiere una constante, que no puede ser una constante en la variable [] (incluso un valor llamado variable constante que se modifica por const no puede)

PD: la variable modificada por const se llama variable constante, que es esencialmente una variable, pero no se puede usar para especificar el tamaño cuando se define la matriz

Debido a que [] es un operador, se puede escribir así, y los dos son equivalentes (antes era posible en algunos lugares, pero no parece ser posible en VS2019, lo veré otro día)

int arr[10] = { 0 };
int 10[arr] = { 0 };

3. El lenguaje C estipula que cada elemento de la matriz tiene un subíndice, y el subíndice comienza desde 0.

4. El uso de arreglos

Podemos acceder a los elementos usando el subíndice del elemento en la matriz

5. Posibles errores al usar arreglos

 Cuando accidentalmente hacemos el subíndice incorrecto de la matriz, pueden ocurrir las siguientes situaciones

Acceso fuera de límites:

Una de las preguntas clásicas es:

#include <stdio.h>
int main()
{
    int i = 0;
    int arr[10] = {0};
    for(i=0; i<=12; i++)
    {
        arr[i] = 0;
        printf("hello world!\n");
    }
    return 0;
}

 La llamada a la matriz en sí en esta pregunta está fuera de los límites, pero dado que se crea la variable i, simplemente coincide con el espacio arr[12] asignado, y el valor se convierte en 0, por lo que el resultado de la ejecución del programa en alguna depuración los entornos es un bucle infinito.

El '\0' oculto por las cadenas en la matriz afecta el tamaño de la matriz:

Tenga en cuenta que '\0' está oculto en "abcdef". Aunque la longitud de arr es 6, el número real de elementos es 7. Podemos verlo a través de la depuración.

 El subíndice es 0~6, un total de 7 elementos y el tamaño es 7.

6. Determine si dos tipos de matrices son iguales:

Siempre que cambie el tipo de la matriz o cambie el número de elementos, el tipo general cambiará.

int main()
{
	int arr1[10] = { 0 };
	char arr2[10] = { 0 };
	char arr3[7] = { 0 };


	return 0;
}

Los tres tipos de matriz en este código son diferentes.

7. Parámetros de matriz

Cuando se pasan parámetros a la matriz, no se trata de la matriz completa, sino de la dirección del primer elemento de la matriz, por lo que si se calcula sz en la función, habrá un error.

Supongo que te gusta

Origin blog.csdn.net/weixin_60320290/article/details/124009890
Recomendado
Clasificación