De mes diapositives de cours, il est écrit:En C, pourquoi une référence de tableau a + = 2; code invalide
Comme cela est illustré dans le code ci-dessous un nom de tableau peut être attribué à un
pointeur approprié sans la nécessité d'un opérateur & précédent.
int x;
int a[3] = {0,1,2};
int *pa = a;
x = *pa;
x = *(pa + 1);
x = *(pa + 2);
a += 2; /* invalid */
Pourquoi a += 2;
est-il invalide?
Quelqu'un peut-il aider à clarifier?
N'hésitez pas à modifier le titre si vous en pensez un meilleur.
Merci Peter, j'aurais dû remarquer la fonction de bloc de code. –
duplication possible de [Arithmétique et tableaux de pointeurs: qu'est-ce qui est vraiment légal?] (Http://stackoverflow.com/questions/2383837/pointer-arithmetic-and-arrays-whats-really-legal), [Les pointeurs et les tableaux sont-ils différents? en C?] (http://stackoverflow.com/questions/1054247/are-pointers-and-arrays-any-different-in-c), et plus encore. –
Désolé, je n'avais aucune idée de ce que les termes de recherche à utiliser. –