7
votes

C ++ Pointeur à Constend Tableau des pointeurs de const

J'ai créé une gamme de consenses de pointeurs de const, comme: xxx

Quelle est la syntaxe correcte pour un pointeur ordinaire non-Const à ce tableau? Je pensais que ce serait const Char ** , mais le compilateur pense autrement.


5 commentaires

Techniquement, votre Const Char * * serait équivalent à votre tableau, car c'est ce que votre matrice se décomposera lorsqu'il est passé à une fonction. Vous auriez besoin d'une indirection supplémentaire pour obtenir un pointeur sur le tableau. Ou quelque chose comme const char * [] * , mais je ne suis pas sûr que celui-ci est valide


Il ressemble au type de et de la liste de session est const char * consons (*) [4] , mais je suis en difficulté pour déclarer une variable avec un tel type.


Vous devez préciser si vous voulez un pointeur à un tableau ou à un pointeur sur un élément d'une matrice. Ces deux sont des choses différentes.


@Kaboissonneonneault: la matrice décrit à Const Char * Const * Lorsque vous l'utilisez dans la plupart des contextes (tout sauf Tailleof , déclinger et & )


@Chrisdodd Vous avez raison, il vous manquait un const


3 Réponses :


2
votes

Le même type que vous avez déclaré pour les éléments de tableau, avec un extra (code> * ajouté: xxx


1 commentaires

@juanchopanza: C'est un type de pointeur qui peut pointer sur n'importe quel élément de la matrice, qui est généralement ce que les gens veulent dire par le terme "pointeur vers le tableau" - le type de pointeur que le nom de la matrice se transforme en quand vous l'utilisez.



6
votes

Si vous avez besoin d'un pointeur sur un tableau, comme votre titre le suggère, il s'agit de la syntaxe:

const char* const (*ptr)[4] = &sessionList;


0 commentaires

4
votes
char const* const (*ptr)[4] = &sessionList; 

0 commentaires