Was ist der Unterschied zwischen array[i]++
und array[i++]
wobei das Array ein int ist array[10]
?
Array-Inkrementtypen in C – Array[i]++ gegen Array[i++]
Samrat
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]);
Ausgabe
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
.
-
Ich habe es verstanden. Danke an alle für die Hilfe
– Samrat
29. September 2011 um 9:46 Uhr
-
Was in dieser Antwort fehlt, ist was
a[i]++
unda[i++]
auswerten zu.– David Heffernan
29. September 2011 um 9:56 Uhr
-
Es ist ein wenig 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), sodass sich Indizes und Werte nicht überschneiden?
– Peter Mortensen
13. Januar 2020 um 3:38 Uhr
-
Die Beispielausgabe ist irreführend, da der Zugriff von
a[i++]
in der zweiten Anweisung gibt tatsächlich den Wert bei Index zurück1
die inkrementiert wurde3
Vor. Beachten Sie, dassx = a[i++];
ist äquivalent zur Anweisungssequenzx = 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 zu ausgewertetarray[i]
bevor es erhöht wurde.array[i++]
erhöht den Wert voni
. Der Ausdruck wird zu ausgewertetarray[i]
Vori
wurde erhöht.
Eine Illustration.
Nehme an, dass array
enthält drei ganze Zahlen, 0, 1, 2 und so weiter i
ist gleich 1.
array[i]++
Änderungenarray[1]
zu 2, wertet zu 1 aus und gehti
gleich 1.array[i++]
ändert sich nichtarray
wird mit 1 ausgewertet und ändert sichi
zu 2.
Ein Suffixoperator, den Sie hier verwenden, ergibt den Wert des Ausdrucks, bevor er erhöht wird.
array[i]++
meint ( *(array+i) )++
. –> Erhöht den Wert.
array[i++]
meint *( array + (i++) )
. –> Erhöht den Index.
Gouse Shaik
Hier die 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 zeigt 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
.
Tanim_113
#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 ist i = 3 so,arr[3]= 40 und erhöht dann den Wert 40 auf 41.So arr[i]++ erhöht den Wert dieses bestimmten Index und a[i++] erhöht zuerst den Index und gibt dann die Werte dieses Index aus.
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;
}