Array-Inkrementtypen in C – Array[i]++ gegen Array[i++]

Lesezeit: 3 Minuten

Benutzeravatar von samprat
Samrat

Was ist der Unterschied zwischen array[i]++ und array[i++]wobei das Array ein int ist array[10]?

Benutzeravatar von taskinoor
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 ies wird nicht erhöht i. Und a[i++] Schritte inicht 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]++ und a[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ück 1die inkrementiert wurde 3 Vor. Beachten Sie, dass x = a[i++]; ist äquivalent zur Anweisungssequenz x = a[i]; i++; Also wird i als Index verwendet Vor es wird erhöht.

    – Richard Neumann

    24. Januar 2021 um 18:17 Uhr

Benutzeravatar von David Heffernan
David Heffernan

  • array[i]++ erhöht den Wert von array[i]. Der Ausdruck wird zu ausgewertet array[i] bevor es erhöht wurde.
  • array[i++] erhöht den Wert von i. Der Ausdruck wird zu ausgewertet array[i]Vor i 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]++ Änderungen array[1] zu 2, wertet zu 1 aus und geht i gleich 1.
  • array[i++] ändert sich nicht arraywird mit 1 ausgewertet und ändert sich i 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.

Benutzeravatar von Gouse Shaik
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.

Benutzeravatar von Tanim_113
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;
}

1432970cookie-checkArray-Inkrementtypen in C – Array[i]++ gegen Array[i++]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy