pointer Isso é um ponteiro para um ponteiro do início de uma matriz?



pointer to array c++ (2)

Acabei de ajudar alguém com algum código. Ele tinha o seguinte:

char dataArray[10];

Em seguida, queria obter um ponteiro para o início da matriz. Em vez de usar:

&dataArray[0]

ou apenas

dataArray

Ele usou

&dataArray

Ele acabou com um ponteiro para um ponteiro lá? Não sei o que o &dataArray daria a ele.

https://ffff65535.com


dataArray e & dataArray [0] apontam para o endereço do primeiro índice da matriz, para que sejam a mesma coisa, mas & dataArray apontará para o endereço de toda a matriz ou podemos dizer que fornecerá o endereço onde está toda a matriz de 10 índices localizado (como um todo)


  • &dataArray[0] é do tipo char * . Isso é um ponteiro para char .
  • dataArray é do tipo char[10]
  • &dataArray será do tipo char (*)[10] . Esse é um ponteiro para o array.

Além disso, o valor será o mesmo, ou seja, eles apontam para o mesmo endereço, mas seus tipos não precisam ser compatíveis.

Nenhum deles é um ponteiro para ponteiro aqui. Eles são apenas ponteiros com tipos diferentes.

Nota: Como a propriedade decaída da matriz, char [100] decai para um char * , por exemplo, quando passado como um instrumento de uma função.





pointer-to-pointer