de même type).
Affectations de pointeurs et conversions
Il n’existe aucune conversion implicite d’un type pointeur en un autre, à l’exception de
la conversion en pointeur générique.
Il n’existe aucune conversion implicite d’un entier en un pointeur, à l’exception de la
valeur 0 qui est alors convertie en un pointeur ne « pointant sur rien ».
Tableaux et pointeurs
Un nom de tableau est une constante pointeur. Avec :
int t[10] ;
t+1 est équivalent à &t[1] ;
t+i est équivalent à &t[i] ;
ti] est équivalent à *(t+i).
Avec :
int t[3] [4] ;
t est équivalent à &t[0][0] ou à t[0] ;
t+2 est équivalent à &t[2][0] ou à t[2]
Lorsqu’un nom de tableau est utilisé en argument effectif, c’est (la valeur de) l’adresse
qui est transmise à la fonction. La notion de transmission par référence n’a pas de sens
dans ce cas. Dans la déclaration d’une fonction disposant d’un argument de type
tableau, on peut utiliser indifféremment le formalisme « tableau » (avec ou sans la
dimension effective du tableau) ou le formalisme pointeur ; ces trois déclarations sont
équivalentes :
void fct (int t[10])
void fct (int t[])
void fct (int * t)
Gestion dynamique de la mémoire
Si type représente la description d’un type absolument quelconque et si n représente une
expression d’un type entier (généralement long ou unsigned long), l’expression :
new type [n]
74
Affectations de pointeurs et conversions
Il n’existe aucune conversion implicite d’un type pointeur en un autre, à l’exception de
la conversion en pointeur générique.
Il n’existe aucune conversion implicite d’un entier en un pointeur, à l’exception de la
valeur 0 qui est alors convertie en un pointeur ne « pointant sur rien ».
Tableaux et pointeurs
Un nom de tableau est une constante pointeur. Avec :
int t[10] ;
t+1 est équivalent à &t[1] ;
t+i est équivalent à &t[i] ;
ti] est équivalent à *(t+i).
Avec :
int t[3] [4] ;
t est équivalent à &t[0][0] ou à t[0] ;
t+2 est équivalent à &t[2][0] ou à t[2]
Lorsqu’un nom de tableau est utilisé en argument effectif, c’est (la valeur de) l’adresse
qui est transmise à la fonction. La notion de transmission par référence n’a pas de sens
dans ce cas. Dans la déclaration d’une fonction disposant d’un argument de type
tableau, on peut utiliser indifféremment le formalisme « tableau » (avec ou sans la
dimension effective du tableau) ou le formalisme pointeur ; ces trois déclarations sont
équivalentes :
void fct (int t[10])
void fct (int t[])
void fct (int * t)
Gestion dynamique de la mémoire
Si type représente la description d’un type absolument quelconque et si n représente une
expression d’un type entier (généralement long ou unsigned long), l’expression :
new type [n]
74
