Quelle est la différence entre n ++ et ++ n?


Réponse 1:

La principale différence entre ++ n et n ++ processus d'évaluation.

++ n signifie pré-incrément de valeur.

n ++ signifie post-incrément de valeur.

Exemple:

int main()

{

int n = 3, res;

cout << ”Valeur n réelle:”

cout << n << endl;

res = n ++;

cout << ”Valeur après post-incrément” << res << endl;

res = ++ n;

cout << ”valeur après pré-incrément" << n << endl;

retourner 0;

}

Production:

Valeur n réelle: 3

Valeur après post-incrément 3

Valeur après pré-incrément 5


Réponse 2:

L'indice est dans la notation: pré-incrémentation signifie "incrémenter d'abord, puis utiliser la valeur renvoyée", tandis que post-incrémentation signifie "utiliser l'ancienne valeur de n d'abord, puis l'incrémenter". Dans une instruction autonome pour incrémenter n, il n'y a pas de différence pratique, et il peut même ne pas y avoir de différence dans le code objet produit par un compilateur; cependant, la distinction devient pertinente lorsque l'ordre d'évaluation est important dans une expression qui a des effets secondaires. à: ++ n; SomeFunction (n); Ou même: SomeFunction (n + 1); ++ n; Je suppose pass-by-value.By et large, il est préférable de clarifier vos intentions en utilisant plusieurs pour éviter toute ambiguïté possible. Vous devez certainement éviter les instructions avec plusieurs effets secondaires, car les résultats peuvent être indéfinis et donc dépendants de l'implémentation; pour voir cela au travail, exécutez le code suivant via - disons - le compilateur Visual C ++ sous Windows et le compilateur gcc ou g ++ sous Unix / Linux:

i = 0, j = 1; int a [10]; a [i ++] = ++ j + i ++;

Pour comprendre les problèmes sous-jacents, lisez les «points de séquence» en C et C ++.

Notez qu'il existe une différence entre C et C ++ en ce qui concerne les opérateurs d'incrémentation: en C ++, des instructions telles que "++++ n;" sont légales, alors qu'en C elles ne le sont pas. Pour comprendre CECI, apprenez ce qui est considéré comme une "valeur l" dans les deux langues.


Réponse 3:

L'indice est dans la notation: pré-incrémentation signifie "incrémenter d'abord, puis utiliser la valeur renvoyée", tandis que post-incrémentation signifie "utiliser l'ancienne valeur de n d'abord, puis l'incrémenter". Dans une instruction autonome pour incrémenter n, il n'y a pas de différence pratique, et il peut même ne pas y avoir de différence dans le code objet produit par un compilateur; cependant, la distinction devient pertinente lorsque l'ordre d'évaluation est important dans une expression qui a des effets secondaires. à: ++ n; SomeFunction (n); Ou même: SomeFunction (n + 1); ++ n; Je suppose pass-by-value.By et large, il est préférable de clarifier vos intentions en utilisant plusieurs pour éviter toute ambiguïté possible. Vous devez certainement éviter les instructions avec plusieurs effets secondaires, car les résultats peuvent être indéfinis et donc dépendants de l'implémentation; pour voir cela au travail, exécutez le code suivant via - disons - le compilateur Visual C ++ sous Windows et le compilateur gcc ou g ++ sous Unix / Linux:

i = 0, j = 1; int a [10]; a [i ++] = ++ j + i ++;

Pour comprendre les problèmes sous-jacents, lisez les «points de séquence» en C et C ++.

Notez qu'il existe une différence entre C et C ++ en ce qui concerne les opérateurs d'incrémentation: en C ++, des instructions telles que "++++ n;" sont légales, alors qu'en C elles ne le sont pas. Pour comprendre CECI, apprenez ce qui est considéré comme une "valeur l" dans les deux langues.


Réponse 4:

L'indice est dans la notation: pré-incrémentation signifie "incrémenter d'abord, puis utiliser la valeur renvoyée", tandis que post-incrémentation signifie "utiliser l'ancienne valeur de n d'abord, puis l'incrémenter". Dans une instruction autonome pour incrémenter n, il n'y a pas de différence pratique, et il peut même ne pas y avoir de différence dans le code objet produit par un compilateur; cependant, la distinction devient pertinente lorsque l'ordre d'évaluation est important dans une expression qui a des effets secondaires. à: ++ n; SomeFunction (n); Ou même: SomeFunction (n + 1); ++ n; Je suppose pass-by-value.By et large, il est préférable de clarifier vos intentions en utilisant plusieurs pour éviter toute ambiguïté possible. Vous devez certainement éviter les instructions avec plusieurs effets secondaires, car les résultats peuvent être indéfinis et donc dépendants de l'implémentation; pour voir cela au travail, exécutez le code suivant via - disons - le compilateur Visual C ++ sous Windows et le compilateur gcc ou g ++ sous Unix / Linux:

i = 0, j = 1; int a [10]; a [i ++] = ++ j + i ++;

Pour comprendre les problèmes sous-jacents, lisez les «points de séquence» en C et C ++.

Notez qu'il existe une différence entre C et C ++ en ce qui concerne les opérateurs d'incrémentation: en C ++, des instructions telles que "++++ n;" sont légales, alors qu'en C elles ne le sont pas. Pour comprendre CECI, apprenez ce qui est considéré comme une "valeur l" dans les deux langues.


Réponse 5:

L'indice est dans la notation: pré-incrémentation signifie "incrémenter d'abord, puis utiliser la valeur renvoyée", tandis que post-incrémentation signifie "utiliser l'ancienne valeur de n d'abord, puis l'incrémenter". Dans une instruction autonome pour incrémenter n, il n'y a pas de différence pratique, et il peut même ne pas y avoir de différence dans le code objet produit par un compilateur; cependant, la distinction devient pertinente lorsque l'ordre d'évaluation est important dans une expression qui a des effets secondaires. à: ++ n; SomeFunction (n); Ou même: SomeFunction (n + 1); ++ n; Je suppose pass-by-value.By et large, il est préférable de clarifier vos intentions en utilisant plusieurs pour éviter toute ambiguïté possible. Vous devez certainement éviter les instructions avec plusieurs effets secondaires, car les résultats peuvent être indéfinis et donc dépendants de l'implémentation; pour voir cela au travail, exécutez le code suivant via - disons - le compilateur Visual C ++ sous Windows et le compilateur gcc ou g ++ sous Unix / Linux:

i = 0, j = 1; int a [10]; a [i ++] = ++ j + i ++;

Pour comprendre les problèmes sous-jacents, lisez les «points de séquence» en C et C ++.

Notez qu'il existe une différence entre C et C ++ en ce qui concerne les opérateurs d'incrémentation: en C ++, des instructions telles que "++++ n;" sont légales, alors qu'en C elles ne le sont pas. Pour comprendre CECI, apprenez ce qui est considéré comme une "valeur l" dans les deux langues.


Réponse 6:

L'indice est dans la notation: pré-incrémentation signifie "incrémenter d'abord, puis utiliser la valeur renvoyée", tandis que post-incrémentation signifie "utiliser l'ancienne valeur de n d'abord, puis l'incrémenter". Dans une instruction autonome pour incrémenter n, il n'y a pas de différence pratique, et il peut même ne pas y avoir de différence dans le code objet produit par un compilateur; cependant, la distinction devient pertinente lorsque l'ordre d'évaluation est important dans une expression qui a des effets secondaires. à: ++ n; SomeFunction (n); Ou même: SomeFunction (n + 1); ++ n; Je suppose pass-by-value.By et large, il est préférable de clarifier vos intentions en utilisant plusieurs pour éviter toute ambiguïté possible. Vous devez certainement éviter les instructions avec plusieurs effets secondaires, car les résultats peuvent être indéfinis et donc dépendants de l'implémentation; pour voir cela au travail, exécutez le code suivant via - disons - le compilateur Visual C ++ sous Windows et le compilateur gcc ou g ++ sous Unix / Linux:

i = 0, j = 1; int a [10]; a [i ++] = ++ j + i ++;

Pour comprendre les problèmes sous-jacents, lisez les «points de séquence» en C et C ++.

Notez qu'il existe une différence entre C et C ++ en ce qui concerne les opérateurs d'incrémentation: en C ++, des instructions telles que "++++ n;" sont légales, alors qu'en C elles ne le sont pas. Pour comprendre CECI, apprenez ce qui est considéré comme une "valeur l" dans les deux langues.