Comment voulez-vous déplacer le premier indice d'un tableau en C?

Je suis en train de basculer l'indice de départ d'un tableau d'entiers en C. Pour être précis, j'ai le tableau suivant:

{ int array[4] = {1,2,3,4};}

Je souhaite changer {array} pour un tableau de 3 éléments contenant {2,3,4}. Je me demandais si il y avait un moyen facile de faire cela en utilisant les pointeurs et sans se déplacer tous les éléments dans le tableau. Je suis également heureux si {array} reste un tableau de 4 éléments, tant que les 3 premiers articles sont {2,3,4}. J'ai essayé le suivant:

{array = &(array[1])}

Toutefois, cela ne fonctionne pas et je reçois un message d'erreur indiquant {types incompatibles lors de l'affectation de type ‘int[4]’ from type ‘int *’}.

J'étais sous l'impression que C tableau est une référence au premier élément du tableau.

Quelqu'un peut-il m'aider?

Cette impression est une idée fausse, qui est encore, à tort, considérée comme "plus intuitive" et donc encore enseigné. Il mord souvent un à l'arrière, tôt ou tard.
Un nom de tableau est un constant qui décrit l'ensemble du bloc de mémoire alloué pour cette matrice. Il ne peut jamais être attribué. Lorsqu'il est utilisé comme un valeur, il est automatiquement converti en un pointeur vers le premier élément, à travers lequel les éléments du tableau peuvent être consultés et modifiés.
Un nom de tableau est une expression de type tableau. Il peut être implicitement converti en une valeur de type pointeur dans certains contextes,. Les Expressions de type tableau sont tout simplement pas programmable en C, pas seulement des tableaux de noms.

OriginalL'auteur Dieter | 2013-10-31