Compiler et exécuter ce code en C
#include <stdio.h>
int main()
{
int a[] = {10, 20, 30, 40, 50};
int index = 2;
int i;
a[index++] = index = index + 2;
for(i = 0; i <= 4; i++)
printf("%d\n", a[i]);
}
Sortie: 10 20 4 40 50
Maintenant, pour la même logique en Java
class Check
{
public static void main(String[] ar)
{
int a[] = {10, 20, 30, 40, 50};
int index = 2;
a[index++] = index = index + 2;
for(int i = 0; i <= 4; i++)
System.out.println(a[i]);
}
}
Sortie: 10 20 5 40 50
Pourquoi y a-t-il une différence de sortie dans les deux langues? La sortie est compréhensible pour Java
mais je ne peux pas comprendre la sortie en C
Une dernière chose, si nous appliquons le préfixe opérateur ++
, nous obtenons le même résultat dans les deux langues, pourquoi?