0
votes

Tableau et pointeur

Je me demande comment vient le code # numéro1 ne fonctionne pas Comme j'essaye d'utiliser l'opérateur d'incrément pour afficher l'élément suivant de la matrice.

mais le code numéro2 # fonctionne, et c'était le même code mais dans une fonction xxx


1 commentaires

Une valeur de pointeur (l'adresse de pointe) peut être incrémentée. Bien que la matrice se désintègre à un pointeur pour presque tout, il est toujours un tableau et (l'adresse) ne peut pas être incrémenté. Affectation de Tableaux à un pointeur correspondant dans principal () , cela fonctionnerait aussi. Peut-être d'intérêt: Donc: Les tableaux sont des pointeurs? .


3 Réponses :


0
votes

Utilisation: xxx

dans le code n ° 1. Ça va marcher. En effet, vous devez d'abord créer un pointeur sur la base de la matrice que vous pouvez incrémenter comme dans le deuxième code, vous avez le pointeur sous la forme de l'argument transmis à la fonction.


0 commentaires

3
votes

C'est parce que vous ne pouvez pas modifier l'adresse d'un tableau. Dans # Numéro 1 Code Lorsque vous effectuez une array ++, vous essayez de fonctionner directement sur la variable qui stocke l'adresse de base de la matrice. Ce que vous pouvez essayer, c'est quelque chose comme ci-dessous:

int *p = array;
p++;


0 commentaires

1
votes

Ceci est un problème courant pour les débutants. ne sont pas des pointeurs! strong>. Les tableaux sont implicitement convertis en pointeurs. C'est là que la confusion réside. Considérez ceci:

for (int x = 0; x < 5; x++) {
  std::cout << arrays[x] << '\n';
}


0 commentaires