Un poco de comprensión de punteros y matrices bidimensionales

#include <stdio.h>
int main(void)
{
    
    
    
    int num[4][2];
    num;
    num[0];
    return 0;
}

Permítanme discutir la diferencia entre num y num [0]. Según mi análisis, ambos representan direcciones, pero usaré num [4] [2] para visualizar y comprender

Inserte la descripción de la imagen aquí
Este debería ser el modo de almacenamiento de la matriz bidimensional en el espacio.

num
num [0]
Hay una pequeña diferencia entre los dos, aunque la dirección del primer elemento almacenado es la dirección de num [0] [0], pero los dos representan diferentes

num, num + 1, num + 2
son las direcciones que representan el tamaño de dos tipos int, es decir,
num [0], num [1], num [2] representa la dirección del primer elemento de esta fila, representa un dirección de tipo int.
Sin embargo, & num [0] es igual a num. Representa esta fila, que representa una matriz.

Una matriz bidimensional se puede considerar como dos matrices, primero se accede a las filas y luego a las columnas. Primero ingrese la matriz de filas y luego ingrese la matriz de columnas de acuerdo con la dirección almacenada en la matriz de filas. En la matriz de columnas solo se almacenan números o elementos.

num es un puntero secundario.
Primero * num, representa la aplicación de solución, ingrese esta fila de la matriz y luego resuelva el
número de la aplicación nuevamente , extraiga el número almacenado en la dirección del primer elemento de la matriz, o trátelo como
( ( num + 0) +0), los corchetes dentro representan El primer elemento cuyo arreglo está fuera del paréntesis es el primer elemento, que tiene el mismo significado que num [0] [0].

Esto es principalmente para discutir el modo de almacenamiento de una matriz bidimensional en la memoria.
Si hay un error, por favor dé un consejo.
Hay más.
Puntero avanzado UNO

Supongo que te gusta

Origin blog.csdn.net/weixin_52199109/article/details/111415765
Recomendado
Clasificación