Может ли кто-нибудь помочь мне понять, как вывод 3 2 15
для следующего кода?Получение неожиданного вывода
Я ожидаю выход как: 2 2 15
потому
- первый элемент
a[1]
т.е.1
получит предварительно увеличивается иi
будет назначен2
, - затем
j
также будет назначена2
, потому что пост инкремент сделано, и - , когда речь идет о
m
,a[i++]
должно быть какa[2]
т.е.15
, sin ce post иm
должен быть назначен15
.
Пожалуйста, помогите мне, если я ошибаюсь.
#include<stdio.h>
int main()
{
int a[5]={5,1,15,20,25};
int i,j,m;
i=++a[1];
j=a[1]++;
m=a[i++];
printf("%d %d %d\n",i,j,m);
return 0;
}
«Разный выход» означает * отличается от ожидаемого *? Тогда, пожалуйста, добавьте к своему сообщению, что вы ожидаете (и почему). – usr2564301