compiler et exécuter ce code dans Cdifférences logiques en C et Java
#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 existe-t-il une différence de sortie dans les deux langues, la sortie est compréhensible f ou Java
mais je ne peux pas comprendre la production dans C
une chose, si l'on applique l'opérateur préfixe ++
, on obtient le même résultat dans les deux langues, pourquoi?
mais qui écrirait le code comme ça (dans une application réelle)? –
@CarlosHeuberger Je vois que vous n'êtes pas habitué à la balise «C++» –
@RyanHaining Je ne comprends pas, mais le commentaire était du 8 janvier ** 2010 ** et la question n'a pas été taguée avec «C++» cette fois . Et je pense toujours que 'un [index ++] = index = index + 2 n'est pas bon ni en C, C++ ni en Java (Python?) - par le commentaire up-votes, je crois que je ne suis pas seul - ou le' C++ 'tag signifie que le code peut être illisible (comme Code Golf peut-être?) Et, voir la seule réponse, aussi C est un peu * confus * à ce sujet ... –