Разница в приращении-декременте в C и JAVA [дубликаты]
На этот вопрос уже есть ответ:
Что такое х после «х = х ++»? 17 ответов Почему эти конструкции используют неопределенное поведение до и после приращения? 14 ответовПожалуйста, примите во внимание следующее утверждение:
int a[]={1,2,3,4,5,6,7,8};
int i=0,n;
n=a[++i] + i++ + a[i++] + a[i] ;
Согласно моей логике n должно быть 10. Но я получаю другой вывод в c (вывод 7). Однако в java я получаю ожидаемый результат, равный 10. Есть ли разница в том, как работают операторы увеличения и уменьшения в с и Java.
Вот мой точный код c и java:
#include <stdio.h>
int main()
{
int a[]={1,2,3,4,5,6,7,8};
int i=0,n;
n=a[++i] + i++ + a[i++] + a[i] ;
printf("%d",n);
getch();
return 0;
}
Java-код с выводом: 10
public class HelloWorld{
public static void main(String []args){
int a[]={1,2,3,4,5,6,7,8};
int i=0,n;
i=0;
n=a[++i] + i++ + a[i++] + a[i] ;
System.out.println(n);
}
}