Commentaires

Bien noter les points suivants :
$\bullet$
Le point important à comprendre dans la règle 2 est que tableau de X est la même chose que pointeur vers X uniquement dans le cas de paramètre formel de fonction. Donc void fonc (int t[]) { ... } est équivalent à
void fonc (int * t) { ... }. Les types des objets déclarés de type tableau ou de type pointeur sont différents dans tous les autres contextes, que ce soit déclaration de variables globales ou locales à une fonction.

$\bullet$
Différence entre règle 1 et règle 2 : une déclaration int t[10] qui n'est pas un paramètre formel, déclare un tableau de 10 entiers. Ce sont les utilisations ultérieures de t qui subissent une conversion en type pointeur vers entier. Par contre, à la déclaration d'un paramètre formel int t[], c'est la déclaration elle-même qui est transformée en int *t.



Matthieu Moy 2017-02-08