Matriz de lenguaje C (activado)

Cómo crear una matriz

    //创建一个数组-存放整型-10个
    int arr[10] = { 1, 2, 3 };

De esta manera, hemos creado una matriz unidimensional,
pero recuerde que para la creación de una matriz, se debe dar una constante en [] y no se pueden usar variables.


Inicialización de la
matriz : La inicialización de la matriz se refiere a dar algunos valores iniciales razonables (inicialización) al contenido de la matriz mientras se crea la matriz.
P.ej:

int arr1[10] = {1,2,3};//这样是不完全的初始化,剩下的元素默认初始化为0

Cuando se crea la matriz, si no desea especificar un tamaño determinado de la matriz, debe inicializarla. El número de elementos de la matriz se determina según el contenido inicializado. Pero para que el siguiente código lo distinga, cómo asignar la memoria.

int main()
{
    char arr4[] = "abcdef";
    printf("%d\n", sizeof(arr4));
    //sizeof 计算 arr4所占空间的大小
    //7个元素-char 7*1 = 7
    printf("%d\n", strlen(arr4));
    //strlen 求字符串的长度 -'\0'之前的字符个数
    //[abcdef\0]
    //6
    return 0;
}

Aquí necesitamos saber la diferencia entre strlen y sizeof 1. strlen y sizeof
no tienen nada que ver con
2. strlen es encontrar la longitud de la cadena, solo la longitud de la función de biblioteca de cadenas, use el archivo de encabezado de referencia
3. tamaño de las variables de cálculo, el tamaño de la matriz y el tipo-la unidad es byte-operador


Los arreglos unidimensionales utilizan el
operador de referencia de subíndice [], que en realidad es un operador para el acceso al arreglo.


Resumen
1. Se accede a las matrices mediante subíndices, que comienzan desde 0.
2. Se puede calcular el tamaño de la matriz.


Almacenamiento de matrices unidimensionales en memoria

int main()
{
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int sz = sizeof(arr) / sizeof(arr[0]);
    int i = 0;
    for (i = 0; i < sz; i++)
    {
        printf("&arr[%d] = %p\n",i, &arr[i]);
    }
}

Matriz de lenguaje C (activado)
Lo anterior es el resultado de salida Desde arr [0] a arr [9], se puede ver que a medida que aumenta el índice de la matriz, la dirección del elemento también aumenta regularmente. Se puede concluir que la matriz se almacena continuamente en la memoria.


Lo siguiente es la creación de una matriz bidimensional.

int arr[3][4];
char arr[3][5];
float arr[2][4];

Inicialización de matriz bidimensional

int arr[3][4] = {1,2,3,4};
int arr[3][4] = {{1,2},{3,4}};
int arr[][4] = {{1,2},{3,4}};

En este momento, los amigos de ojos agudos pueden encontrar que no hay ningún número en [] en la fila representativa anterior de la tercera matriz bidimensional, porque en la matriz bidimensional, la fila de inicialización de la matriz bidimensional se puede omitir pero la columna no se puede omitir . (Suplemento: int arr [3] [4] representa la creación de tres filas y cuatro columnas)


El uso de matrices
bidimensionales El uso de matrices bidimensionales también se realiza mediante subíndices.


Almacenamiento de matriz bidimensional en memoria

int main()
{
    int arr[3][4];
    int i = 0;
    for (i = 0; i < 3; i++)
    {
        int j = 0;
        for (j = 0; j < 4; j++)
        {
            printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]);
        }
    }
    return 0;
}

Imprimir resultado: a partir del
Matriz de lenguaje C (activado)
resultado, podemos ver que, como una matriz unidimensional, una matriz bidimensional se almacena continuamente en la memoria .

2021.1.26
Siempre cree en las computadoras tontas

Supongo que te gusta

Origin blog.51cto.com/15080720/2607578
Recomendado
Clasificación