Quelle est la différence entre array [i] ++ code> et tableau [i ++] code>, où le tableau est un réseau int code >? P>
7 Réponses :
array [i] ++ code> incrémente la valeur de matrice [i] code>. L'expression évalue à matry [i] code> avant d'être incrémenté. Li>
-
array [i ++] code> incrémente la valeur du i code>. L'expression évalue à matry [i] code>, avant i code> a été incrémenté. Li>
ul>
Une illustration. P>
Supposons que tableau code> contient trois entiers, 0, 1, 2 et que i code> est égal à 1. p>
-
array [i] ++ code> modifications matry [1] code> à 2, évalue à 1 et laisse i code> égal à 1. li>
-
array [i ++] code> ne modifie pas tableau code>, évalue à 1 et modifie i code> à 2. li>
ul>
Un suffixe des opérateurs que vous utilisez ici, évalue la valeur de l'expression avant qu'elle ne soit incrémentée. P>
array [i] ++ code> signifie (* (tableau + i)) ++ code>. -> incrémente la valeur. P>
array [i ++] code> signifie * (tableau + (i ++)) code>. -> incrémente l'index. P>
1 3 2 3
J'ai compris. Merci à tout le monde de l'aide
Ce qui manque de cette réponse est ce que a [i] ++ code> et a [i ++] code> évaluate à.
C'est un peu déroutant, car la matrice valeurs i> est à peu près la même gamme que la matrice index i>. Pouvez-vous compenser les valeurs (par exemple, par 60), il n'y a donc aucun chevauchement entre index et valeurs?
L'exemple de sortie est trompeur, car l'accès de a [i ++] code> dans la deuxième instruction renvoie réellement la valeur à index 1 code>, qui a été incérentiellement incité à 3 < / code> avant. Sachez que x = a [i ++]; code> équivaut à la séquence de relevé x = a [i]; i ++; code> alors je serai utilisé comme index avant i> il est incrémenté.
Ici le tableau [I] ++ code> incrémente la valeur de l'élément tableau [i] code>,
mais array [i ++] code> incrémente la valeur i code> qui effets ou modifie l'indication de l'élément de tableau (c'est-à-dire indiquant l'élément suivant d'une matrice après Array [i ] code>). p>
ici Code Snippet: P> array [i ++] code> incrémente le numéro d'index.
Au contraire, array [i] ++ code> incrémente la valeur de données de i code> index. #include <iostream>
using namespace std;
int main()
{
int array[] = {5, 2, 9, 7, 15};
int i = 0;
array[i]++;
printf("%d %d\n", i, array[i]);
array[i]++;
printf("%d %d\n", i, array[i]);
array[i++];
printf("%d %d\n", i, array[i]);
array[i++];
printf("%d %d\n", i, array[i]);
return 0;
}
3 41 4 5
Disons que nous avons cet exemple, array [i ++] = x [m ++] code>. Cela signifie que le premier ensemble de montage [i] = x [m] code> puis augmente les index comme i + 1 code>, m + 1 code>. p>