2016-07-06 2 views
0

Rendez-vous ici: http://cdecl.org/cdecl clarification requise: qu'est-ce qu'un "tableau 5?"

Entrée:

char (*arr)[5] 

Sortie:

déclare arr comme pointeur sur un tableau 5 ombles

Qu'est-ce qu'un "tableau 5"? Est-ce que cela signifie simplement un tableau avec 5 éléments?

+0

Oui, il le fait. Qu'est-ce qui vous rend mal à l'aise avec ça? Le fait que les tableaux peuvent se décomposer en pointeurs? –

+1

@ jnbrq-CanberkSönmez Un tableau peut être implicitement converti en un pointeur, qui pointe vers le premier élément, mais cette 'désintégration' n'est pas un pointeur vers un tableau. Qu'est-ce que l'OP a un pointeur réel à un tableau –

+0

pas d'inconfort, juste une clarification nécessaire –

Répondre

1

Il s'agit d'un pointeur vers un tableau de 5 éléments. Les pointeurs et les références aux tableaux sont utiles pour passer des tableaux à des fonctions, ainsi que pour les renvoyer. Ne renvoyez pas les tableaux locaux non statiques à mesure que leur durée de vie se termine au retour.

Pour faire référence à un tableau, vous pouvez utiliser cette déclaration: char (&arr)[5] = array;

+0

Je ne peux pas accepter votre réponse pour 10 minutes de plus apparemment. Je dois donner une chance aux autres aussi. –