Was ist der Unterschied zwischen array[i]++
(außerhalb der Klammern erhöhen) und array[i++]
(Inkrement in Klammern), wobei das Array ein int ist array[10]
?
Array-Inkrementpositionierung in Bezug auf den Indexer im C-Array[i]++ vs. Array[i++]
Samprat
Taskinoor
int a[] = {1, 2, 3, 4, 5};
int i = 1; // Second index number of the array a[]
a[i]++;
printf("%d %d\n", i, a[i]);
a[i++];
printf("%d %d\n", i, a[i]);
Ausgang
1 3
2 3
a[i]++
Erhöht das Element am Index i
es wird nicht erhöht i
. Und a[i++]
Schritte i
nicht das Element am Index i
.
-
Was in dieser Antwort fehlt, ist was
a[i]++
Unda[i++]
bewerten zu.– David Heffernan
29. September 2011 um 9:56 Uhr
-
Es ist etwas verwirrend, weil das Array Werte liegen in etwa im gleichen Bereich wie das Array Indizes. Können Sie die Werte versetzen (z. B. um 60), damit es keine Überschneidungen zwischen Indizes und Werten gibt?
– Peter Mortensen
13. Januar 2020 um 3:38
-
Die Beispielausgabe ist irreführend, da der Zugriff von
a[i++]
in der zweiten Anweisung gibt tatsächlich den Wert am Index zurück1
das inkrementiert wurde3
Vor. Beachten Sie, dassx = a[i++];
entspricht der Anweisungsfolgex = a[i]; i++;
Also wird i als Index verwendet Vor es wird erhöht.– Richard Neumann
24. Januar 2021 um 18:17 Uhr
David Heffernan
array[i]++
erhöht den Wert vonarray[i]
. Der Ausdruck wird ausgewertet alsarray[i]
bevor es erhöht wurde.array[i++]
erhöht den Wert voni
. Der Ausdruck wird ausgewertet alsarray[i]
Vori
wurde erhöht.
Eine Illustration.
Nehme an, dass array
enthält drei ganze Zahlen, 0, 1, 2 und das i
ist gleich 1.
array[i]++
Änderungenarray[1]
auf 2, ergibt 1 und gehti
gleich 1.array[i++]
ändert sich nichtarray
wird zu 1 ausgewertet und ändert sichi
zu 2.
Ein Suffixoperator, den Sie hier verwenden, ergibt den Wert des Ausdrucks, bevor dieser erhöht wird.
array[i]++
bedeutet ( *(array+i) )++
. -> Erhöht den Wert.
array[i++]
bedeutet *( array + (i++) )
. -> Erhöht den Index.
Gouse Shaik
Hier das Array[i]++
erhöht den Wert des Elements array[i]
Aber array[i++]
erhöht die i
Wert, der die Anzeige des Array-Elements beeinflusst oder ändert (d. h. er gibt das nächste Element eines Arrays danach an). array[i]
).
Nehmen wir an, wir haben dieses Beispiel: array[i++] = x[m++]
. Dies bedeutet, dass der erste Satz array[i] = x[m]
Dann erhöhen Sie die Indizes wie i + 1
, m + 1
.
Hier array[i++]
erhöht die Indexnummer.
Andererseits, array[i]++
erhöht den Datenwert von i
Index.
Code-Auszug:
#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;
}
WD
#include<iostream>
using namespace std;
int main()
{
int arr[]={1,2,37,40,5,7};
int i = 3;
arr[i]++;
cout<<i<<" "<<arr[i]<<endl;
arr[i++];
cout<<i<<" "<<arr[i]<<endl;
return 0;
}
Ausgang:
3 41
4 5
In diesem Beispiel i = 3
So arr[3] = 40
. Anschließend wird der Wert von 40 auf 41 erhöht arr[i]++
erhöht den Wert dieses bestimmten Indexes und a[i++]
erhöht zuerst die Index und gibt dann den Wert für diesen Index an.