Um pouco de compreensão de arrays e ponteiros bidimensionais

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

Deixe-me discutir a diferença entre num e num [0]. De acordo com minha análise, ambos representam endereços, mas usarei num [4] [2] para visualizar e entender

Insira a descrição da imagem aqui
Este deve ser o modo de armazenamento da matriz bidimensional no espaço.

num
num [0]
Há uma pequena diferença entre os dois, embora o endereço do primeiro elemento armazenado seja o endereço de num [0] [0], mas os dois representam diferentes

num, num + 1, num + 2
são os endereços que representam o tamanho de dois tipos int, ou seja,
num [0], num [1], num [2] representa o endereço do primeiro elemento desta linha, representa um endereço do tipo int.
No entanto, & num [0] é igual a num. Representa esta linha, representando uma matriz.

Uma matriz bidimensional pode ser considerada como duas matrizes, as linhas são acessadas primeiro e, em seguida, as colunas. Insira primeiro a matriz de linha e, em seguida, insira a matriz de coluna de acordo com o endereço armazenado na matriz de linha. Apenas números ou elementos são armazenados na matriz da coluna.

num é um ponteiro secundário.
Em primeiro lugar * a num, representa a aplicação solução, entrar neste fileira de matriz, e em seguida resolver a aplicação
num novamente , extrair o número armazenado o endereço do primeiro elemento da matriz, ou tratá-la como
( ( num + 0) +0), os colchetes dentro representam O primeiro elemento cujo array está fora dos parênteses é o primeiro elemento, que tem o mesmo significado que num [0] [0].

Isso é principalmente para discutir o modo de armazenamento de uma matriz bidimensional na memória.
Se houver um erro, por favor, dê um conselho.
Há mais.
Ponteiro avançado - UM

Acho que você gosta

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