Отличие постфиксной и префиксной формы декрементирования при работе с массивами - C (СИ)
Формулировка задачи:
Здравствуйте.
Есть код, который работает(префиксная форма):
#include <stdio.h> int main(void){ int mas[10]; mas[0] = 350; mas[1] = --mas[0]; printf("%i", mas[1]);// Выводится 349. Все верно! return 0; }
Когда использую постфиксную форму, не получается(Выводит 350. А должно 349):
#include <stdio.h> int main(void){ int mas[10]; mas[0] = 350; mas[1] = mas[0]--; printf("%i", mas[1]); // Не работает. Выводит 350. А должно 349. return 0; }
Откуда такие выводы?
Префиксное декрементирование происходит так: 1) mas[0] уменьшается на 1. 2) Уменьшенное значение заносится в mas[1]. Постфиксное декрементирование происходит так: 1) mas[1] присваивается значение mas[0], то есть 350. 2) Уменьшение присвоенного значения на 1Что неправильно? Где я ошибаюсь?
Решение задачи: «Отличие постфиксной и префиксной формы декрементирования при работе с массивами»
textual
Листинг программы
mas[1] = mas[0]--;
Объяснение кода листинга программы
- Объявляется переменная типа массив
mas
с размером 20 элементов. - В первом элементе массива
mas
хранится значение 10. - Во втором элементе массива
mas
хранится значение 20. - Значение второго элемента массива
mas
присваивается первому элементу массиваmas
. - Значение первого элемента массива
mas
уменьшается на 1. - Уменьшенное значение первого элемента массива
mas
присваивается второму элементу массиваmas
. - Значение второго элемента массива
mas
становится равным 19.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д