В C { a[i] = a[++i] } эквивалентно { a[i] = a[i+1]; я ++;}?

В С есть

a[i] = a[++i];

эквивалентно

a[i] = a[i+1]; i++;

То есть, какая сторона задания оценивается первой и какое значение i используется на левой стороне? Или это назначение двусмысленное?

1 ответ

Решение

В той же точке последовательности вы используете и увеличиваете i

a[i] = a[i++];

что приведет к неопределенному поведению.

a[i] = a[i+1];
i++;

это хорошо.

И ответить на твой вопрос они одинаковы? Нет, они не!! Один, если четко определен, а другой нет.

Проверьте этот ответ

Другие вопросы по тегам