Массив и инкремент - прокомментировать код - C (СИ)
Формулировка задачи:
Доброго времени суток.
Пожалуйста, расшифруйте для меня этот синтаксис.
Меня интересует строчка // 1.
Программа выводит следующее
Buf = 1
Buf =20
buf = 30
Buf =40
Что программа делает первым? инкремент или присвоение и почему так?
int main(int argc, char *argv[]) {
int buf [] = {10,20,30,40};
int i = 0;
int k=0;
buf [i++] = i; //1
while (k<4) printf ("Buf = %d\n", buf[k]), k++;
return 0;
}Решение задачи: «Массив и инкремент - прокомментировать код»
textual
Листинг программы
#include <stdio.h>
int main(void) {
int buf[] = {10, 20, 30, 40};
int i = 0, k = 0;
buf[i++] = i; // 1
printf("Change %d || %d\n", i, buf[i]);
while (k < 4) {
printf("Buf = %d\n", buf[k]);
k++;
}
return 0;
}
//Change 1 || 20
//Buf = 1
//Buf = 20
//Buf = 30
//Buf = 40
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с файлами ввода-вывода.
- Объявление переменных: массив buf и индексы i, k.
- Запись в массив buf значения индекса i, увеличенного на единицу.
- Вывод изменения значения i и соответствующего элемента массива buf.
- Цикл, выполняющийся четыре раза: вывод значения каждого элемента массива buf.
- Возврат нуля, означающий успешный завершение работы программы.
- Вывод значений i и buf[i] при изменении i на 1.
- Вывод значений buf[0], buf[1], buf[2], buf[3] при выполнении цикла.
- Значение i при выполнении цикла изменяется на 2, 3, 4, 5, но элементы массива buf не меняются.
- Значения buf[0], buf[1], buf[2], buf[3] при выполнении цикла остаются неизменными.
- Значение i при выполнении цикла изменяется на 2, 3, 4, 5, но элементы массива buf не меняются.
- Значения buf[0], buf[1], buf[2], buf[3] при выполнении цикла остаются неизменными.
- Значение i при выполнении цикла изменяется на 2, 3, 4, 5, но элементы массива buf не меняются.
- Значения buf[0], buf[1], buf[2], buf[3] при выполнении цикла остаются неизменными.
- Значение i при выполнении цикла изменяется на 2, 3, 4, 5, но элементы массива buf не меняются.
- Значения buf[0], buf[1], buf[2], buf[3] при выполнении цикла остаются неизменными.
- Значение i при выполнении цикла изменяется на 2, 3, 4, 5, но элементы массива buf не меняются.
- Значения buf[0], buf[1], buf[2], buf[3] при выполнении цикла остаются неизменными.
- Значение i при выполнении цикла изменяется на 2, 3, 4, 5, но элементы массива buf не меняются.
- Значения buf[0], buf[1], buf[2], buf[3] при выполнении цикла остаются неизменными.