Разница в приращении-декременте в 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);
     }
}

Ответы на вопрос(3)

Ваш ответ на вопрос