Окей, давай разбираться с этой задачей шаг за шагом.
Есть структура list, описывающая элементы связанного списка, где каждый элемент содержит числовое значение a и указатель на следующий элемент next.
Переменная first хранит адрес первого элемента списка, с этого элемента и начинается перебор всех элементов.
Цикл for описан следующим образом:
for (s = 0, p = first; p != NULL; s++, p = p->next);
В этом цикле используются две переменные: s и p. Переменная s инициализируется нулем, а p принимает значение first, то есть указывает на начало списка.
Условие продолжения цикла p != NULL означает, что перебор элементов будет продолжаться до тех пор, пока не будет достигнут конец списка (последний элемент списка указывает на NULL).
В теле цикла, которое, кстати, отсут
