12
votes

Types d'incrément de tableau dans C - Array [I] ++ VS Array [i ++]

Quelle est la différence entre array [i] ++ et tableau [i ++] , où le tableau est un réseau int ?


0 commentaires

7 Réponses :


19
votes
  • array [i] ++ incrémente la valeur de matrice [i] . L'expression évalue à matry [i] avant d'être incrémenté.
  • array [i ++] incrémente la valeur du i . L'expression évalue à matry [i] , avant i a été incrémenté.

    Une illustration.

    Supposons que tableau contient trois entiers, 0, 1, 2 et que i est égal à 1.

    • array [i] ++ modifications matry [1] à 2, évalue à 1 et laisse i égal à 1.
    • array [i ++] ne modifie pas tableau , évalue à 1 et modifie i à 2.

      Un suffixe des opérateurs que vous utilisez ici, évalue la valeur de l'expression avant qu'elle ne soit incrémentée.


0 commentaires

5
votes

array [i] ++ signifie (* (tableau + i)) ++ . -> incrémente la valeur.

array [i ++] signifie * (tableau + (i ++)) . -> incrémente l'index.


0 commentaires

23
votes
1 3
2 3

4 commentaires

J'ai compris. Merci à tout le monde de l'aide


Ce qui manque de cette réponse est ce que a [i] ++ et a [i ++] évaluate à.


C'est un peu déroutant, car la matrice valeurs est à peu près la même gamme que la matrice index . 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 ++] dans la deuxième instruction renvoie réellement la valeur à index 1 , qui a été incérentiellement incité à 3 < / code> avant. Sachez que x = a [i ++]; équivaut à la séquence de relevé x = a [i]; i ++; alors je serai utilisé comme index avant il est incrémenté.



2
votes

Ici le tableau [I] ++ incrémente la valeur de l'élément tableau [i] , mais array [i ++] incrémente la valeur i 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 ] ).


0 commentaires

0
votes

ici 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.

Code Snippet: P>

#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;
}


0 commentaires

0
votes
3 41
4 5

0 commentaires

1
votes

Disons que nous avons cet exemple, array [i ++] = x [m ++] . Cela signifie que le premier ensemble de montage [i] = x [m] puis augmente les index comme i + 1 , m + 1 .


0 commentaires