Вывод с использованием массивов и постфиксных / префиксных операторов

Меня попросили найти выходные данные следующих сегментов кода.
Для любого выражения меня попросили оценить форму справа налево от моего учителя.

    #include<iostream.h>
#include<conio.h>
int main()
{clrscr();
int a[]={10,20,30,40};
for(int i=0;i<3;)
a[i]=a[++i];
for(i=0;i<4;++i)
cout<<a[i]<<endl;
return(0);
}

Теперь, если я оцениваю строку 7 справа налево, мой вывод должен быть:

      20
30
40
40

Но если я оцениваю слева направо, это будет

      10
20
30
40

При запуске программы вывод был case2.

Вот еще один.

          #include<iostream.h>
#include<conio.h>
int main()
{clrscr();
int a[]={10,20,30,40};
for(int i=0;i<3;)
a[++i]=a[i];
for(i=0;i<4;++i)
cout<<a[i]<<endl;
return(0);
}

На этот раз, когда я оценил форму справа налево:

           10
20
30
40

и слева направо:

           10
10
10
10

И после запуска я получил случай 1.

В каком направлении я действительно должен оценивать? Почему оба случая не совпадают?

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]