6
votes

C Pointer Array

Lors de la création d'un tableau de pointeur en C Qu'est-ce que l'effet d'ajout de parenthèses faire?

Par exemple

int (* POI) [2];

vs

int * poii [2];


1 commentaires

Enregistre l'usure du clavier


3 Réponses :


8
votes

pointeur sur un tableau de 2 int code> s: xxx pré>

un tableau de deux int code> Pointeurs: p>

int *poi[2];


2 commentaires

.. vraiment? [] Est plus serré je ne vois pas pourquoi est-ce


@Lynnyilu - juste la voie C standard est défini.



0
votes

Les crochets se lient plus serrés que *, de sorte que le premier est un tableau des pointeurs d'int, tandis que la seconde est un pointeur sur un tableau d'INTS.


1 commentaires

Vous avez cela à l'avant, n'est-ce pas?



2
votes

L'opérateur d'index [] se lie plus fort que l'opérateur Derefentifiation * . xxx

traduit à:

Si vous voyez POI , appliquez [x] à celui-ci, puis DÉRÉFERFERE Le résultat via * et vous obtenez un int . Donc, c'est un tableau de 2 pointeurs à int.

dans xxx

Les paranthèses forcent le * à appliquer en premier. Donc, à tout moment POI est utilisé, si vous appliquez * d'abord, puis [x] vous obtenez un int . C'est donc un pointeur à un tableau de 2 int .


0 commentaires