Array-Inkrementpositionierung in Bezug auf den Indexer im C-Array[i]++ vs. Array[i++]

Lesezeit: 3 Minuten

Samprats Benutzeravatar
Samprat

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]?

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]);

Ausgang

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.

  • Was in dieser Antwort fehlt, ist was a[i]++ Und a[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ück 1das inkrementiert wurde 3 Vor. Beachten Sie, dass x = a[i++]; entspricht der Anweisungsfolge x = a[i]; i++; Also wird i als Index verwendet Vor es wird erhöht.

    – Richard Neumann

    24. Januar 2021 um 18:17 Uhr

David Heffernans Benutzeravatar
David Heffernan

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

Benutzeravatar von WD
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 = 3So 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.

1453210cookie-checkArray-Inkrementpositionierung in Bezug auf den Indexer im C-Array[i]++ vs. Array[i++]

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

Privacy policy