El dispositivo Tipo-C admite la carga al mismo tiempo, Solución de transmisión USB2.0 (OTG) Tipo-C Cargo rápido y OTG Compatible Legendario

2023-01-23   EN  

Directorio

una matriz de dimensión

Declaración:

Inicialización:

Inicialización completa:

Inicialización incorrecta

Global Array:

matriz de personajes

use:

Memoria en la memoria

matriz de dos dimensiones

Declaración

Inicialización

Almacenamiento en la memoria

matriz


matriz: un conjunto del mismo conjunto del mismo elemento

matriz de una dimensión

Declaración:

Nombre del número de tipo de datos Nombre [Expresión constante];

Expresión constante: debe ser una constante entera mayor que cero.

Por ejemplo

int main () 
 {{ 
 Char ARR1 [10]; // El tipo de char contiene 10 elementos ARR1 
 int arr2 [1 + 9]; // El tipo de una matriz de 10 elementos ARR2 
 Long ARR3 [1 * 10]; // El tipo de tipo de 10 elementos ARR3 contiene 10 elementos 
 Flotante arr4 [100 /10]; // El tipo de flotante contiene 10 elementos matriz ARR4 
 ARR5 doble [110 % 100]; // El tipo de doble matriz de elementos ARR5 
 Regresar 0; 
 }

Nota: Cree una serie de matrices. Antes del estándar C99, debe dar una constante en [] y no puede usar variables. En el estándar C99, se admite el concepto del cambio del cambio.

Inicialización:

La inicialización de la matriz de

se refiere a algunos valores iniciales razonables (inicialización) de la matriz al mismo tiempo que la matriz.

Inicialización completa:

Cuando el número se inicializa completamente, se puede omitir la expresión constante en la matriz. Determinará automáticamente el tamaño de la matriz de acuerdo con el número de elementos dados

int main () 
 {{ 
 int arr [] = {1,2,3,4,5,6,7,8,9,10}; 
 int sz = sizeof (arr) /sizeof (arr [0]); // Calcule el número de elementos 
 Printf ("%d", sz); 
 Regresar 0; 
 }

Inicialización incorrecta

Cuando se inicializan la matriz, se inicializan algunos elementos y los elementos restantes se complementarán automáticamente a 0

int main () 
 {{ 
 int arr [10] = {1,2,3,4,5}; // Aplicar 10 espacios enteros, solo inicialización de los primeros cinco elementos. 
 int i = 0; 
 para (i = 0; i <10; i ++) 
 Printf ("%d", arr [i]); 
 Regresar 0; 
 }

matriz global:

La inicialización de la matriz global

es algo similar a la variable global. Cuando se declara la matriz global pero no se inicializa, será automáticamente inicialmente cero.

int arr [10]; // Crear una matriz global 
 int main () 
 {{ 
 int i = 0; 
 para (i = 0; i <10; i ++) 
 Printf ("%d", arr [i]); // Todos los elementos de la matriz de impresión 
 Regresar 0; 
 }

matriz de personajes

Además de almacenar caracteres en el tipo

char, también puede almacenar cadena

El almacenamiento del personaje es más o menos similar al personaje, pero todavía hay algunas diferencias

int main () 
 {{ 
 char arr [] = {'h', 'e', ​​'l', 'l', 'o', '', 'w', 'o', 'r', 'l', 'd' }; 
 char ch [] = "hola mundo"; 
 int sz_arr = sizeof (arr)/sizeof (arr [0]); // Calcule el número de elementos de la matriz ARR 
 int sz_ch = sizeof (ch) /sizeof (arr [0]); // Calcule el número de elementos de la matriz CH 
 Printf ("El tamaño de la matriz de arr es => %d \ n", sz_arr); 
 Printf ("El tamaño de la matriz CH es => %d \ n", sz_ch); 
 Regresar 0; 
 }

Las matrices de personajes se almacenan mundialmente, ¿por qué es una diferencia en el elemento?

Abra la vigilancia y revise, lo encontrará

En comparación con ARR, uno más \ 0 se almacena en el cap.

Al final de la cadena, la computadora agregará automáticamente un \ 0.

use:

A través del operador de licitación [] y los elementos, la licitación se puede utilizar para lograr la función de la función en la matriz

(solo puede hacer referencia a los elementos de la matriz uno por uno, y no se puede hacer referencia a toda la matriz a la vez).

dispensación: cada elemento en la matriz tiene su propio acuerdo, y la oferta aumenta de 0

por ejemplo

int main () 
 {{ 
 char arr [] = "abcdefgh"; 
 Printf ("%c \ n", arr [0]); // imprima el elemento con 0 ofertas 0 
 printf ("%c \ n", arr [1]); // Imprima el elemento con una oferta para 1 
 printf ("%c \ n", arr [2]); // imprima el elemento con 2 ofertas 2 
 printf ("%c \ n", arr [3]); // imprima el elemento con 3 ofertas 3 
 printf ("%c \ n", arr [4]); // imprima el elemento con 4 ofertas 4 
 printf ("%c \ n", arr [5]); // imprima el elemento con 5 ofertas 5 
 printf ("%c \ n", arr [6]); // imprima el elemento con 6 ofertas 6 
 printf ("%c \ n", arr [7]); // imprima el elemento con 7 ofertas 7 
 Regresar 0; 
 }

Resumen:

La matriz

  • es accesible para usar la licitación, y la licitación comienza desde 0.

    Se puede calcular el tamaño de la matriz

  • .
int arr[10];
int sz = sizeof(arr)/sizeof(arr[0]);

Almacenamiento en la memoria

La matriz se almacena continuamente en la memoria

se puede observar mediante la dirección de cada elemento en la matriz

int main()
{
    int arr[10] = { 0 };
    int i = 0;
    int sz = sizeof(arr) / sizeof(arr[0]);
    for (i = 0; i < sz; ++i)
        printf("&arr[%d] = %p\n", i, &arr[i]);
    return 0;
}

Se pueden encontrar la diferencia de cuatro bytes entre la dirección de cada elemento. Esta matriz es una matriz entera, que se puede aprender claramente.

La matriz se almacena continuamente en la memoria

NOTA: El nombre de la matriz es la dirección del primer elemento

arr [i] también se puede entender como (arr+i)*

matriz de dos dimensiones

Declaración

La declaración de matriz de dos dimensiones es algo similar a una matriz de una dimensión

Tipo de datos Nombre Nombre Nombre [Expresión constante] [Renderización constante];

Por ejemplo

int arr1 [3] [4]; el tipo de tipo contiene 12 (3*4) matriz ARR1 

 Char ARR2 [3] [5]; el tipo de tipo contiene la matriz de 15 (3*5) elementos ARR2 

 ARR3 doble [2] [4]; el tipo de tipo que contiene 8 (2*4) Elementos ARR3

Inicialización

Tipo de datos Nombre Nombre Nombre [Expresión constante 1] [Constante alcanza 2];

La expresión puede entenderse comonúmero

Exp Me puede entenderse comocolumnanúmero

Por ejemplo

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

se puede entender como un espacio para una línea de tres y cuatro, que son como datos de depósito, y la siguiente línea se almacena después de la completa.

NOTA: Para la inicialización incompleta, el espacio que no se inicializa es cero.

En la premisa de este ejemplo, algunos ejemplos pueden entender mucho

En la matriz de dos# dos dimensiones, se puede omitir el número de filas. Determinará automáticamente el tamaño de la fila de acuerdo con el número de filas que inicializan

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

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

Uso

El uso de

matriz de dos dimensiones también depende de la licitación

Explicación con una función

int main()
{
    int row = 0;
    int col = 0;
    int arr[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12}};
    for (row = 0; row < 3; row++)
    {
        for (col = 0; col < 4; col++)
        {
            printf("arr[%d][%d]=%2d ", row, col, arr[row][col]);
        }
        printf("\n");
    }
    return 0;
}

puede pasarlicitación de líneayConfiguración de columnapara bloquear el elemento para lograr el efecto del uso

Almacenamiento en la memoria

La matriz de dos dimensiones también se almacena continuamente en la memoria

Aunque

#include <stdio.h>
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;
}

, al comprender la matriz de dos dimensiones, a menudo comprende la matriz de dos dimensiones como un avión, y el comienzo se almacena continuamente en la memoria

como se muestra en la figura a continuación

matriz

Al llamar a la función de la oferta inferior, debe prestar atención al alcance de la oferta para evitar la situación de cruzar la frontera.

Tome una matriz de dimensión como ejemplo

La matriz

tiene elementos n, por lo que el alcance de la licitación es 0 ~ n-1. Cuando la corriente es inferior a 0 o mayor que N-1, pertenece a la visita transfronteriza, que está más allá de la entrevista con La variedad de espacio legal.

matrices de dos dimensiones iguales

source

Related Posts

Cómo usar Gitlab y GitHub al mismo tiempo en una computadora

Java Graphics2d Síntesis e imagen Agregar texto Arquitecto

C ++ Manejo de excepciones (procesamiento anormal) Parte1 Los dos errores más comunes en el programa

POM.XML Configuración

El dispositivo Tipo-C admite la carga al mismo tiempo, Solución de transmisión USB2.0 (OTG) Tipo-C Cargo rápido y OTG Compatible Legendario

Random Posts

La primera “prueba escrita”

SOCKS5 Implementación del servidor proxy (C ++)

Ejercicio multi -hilo Linging

Clave de acceso directo práctico de Photoshop

“Conducción autónoma” es fácil de causar engañoso? Un grupo de cabildeo de la industria de conducción autónoma abandona la palabra