0
votes

Pourquoi l'échange de nom de nom variable ne modifie-t-il que le programme C?

J'ai essayé cet exemple de tableau et post-incrément / prérémentation sur ses éléments xxx

ici la sortie est la suivante: xxx

et Si je change l'ordre des n et k c'est-à-dire au lieu de xxx

i écrire xxx

la sortie devient: xxx

J'ai essayé ceci sur Mingw Compiler sur Windows10 et sur le GCC de Kali Linux ... Même problème.

C'est comme la prise de nom de variable différente modifie la sortie du programme. Quelle pourrait être la raison?

Merci à tout le monde de m'aider avec cette question.

Je n'ai pas pris le dernier incrément post de K à l'étude.

Les résultats seraient identiques de ce que j'aurais changé xxx

avec xxx


2 commentaires

Vous voudrez peut-être imprimer la valeur de j [1] après chacune de ces déclarations.


Dans le premier, n = 2 et k = 3 après ces deux lignes; Dans la seconde, k = 2 et n = 3. Plus tard, cette nouvelle valeur pour K affectera la valeur attribuée à m. Pourquoi trouvez-vous cet inattendu?


3 Réponses :


2
votes

Pourquoi ne serait-ce pas? Les valeurs de k code>, n code> et m code> dépendent de leur placement dans le code.

Par exemple, P>

j[1] = 1
j[1] = 2, k = 2
j[1] = 3, n = 3
j[1] = 4, l = 3
m= 15, k = 3

3, 3, 3, 15


0 commentaires

1
votes

Dans le premier cas:

k = ++j[1]; //j[1] is incremented and is now 2, so k is 2
n = ++j[1]; //j[1] is incremented again and is now 3, so n is 3
l = j[1]++; //j[1] is incremented again and is now 3, but l is 3
m = j[k++]; //m  is j[2] which is 15, and k will become 3 as it is post-incremented


0 commentaires

0
votes

En fait, ce n'est pas si compliqué int j [5] = {5, 1, 15, 20, 25}; xxx

Voir l'autre cas xxx


0 commentaires