Zakomentuje w kodzie ponizej to czego w nim nie rozumiem, siedzialem troche i czytalem ale paru punktow nie ogarniam, prosilbym o wyjasnienie:
#include <stdio.h>
#include <stdlib.h>
typedef struct element {
struct element *next;
unsigned long val;
} el_listy;
el_listy *first; /* To jest wskaznik first na strukture el_listy tak ? */
void dodaj_do_listy (el_listy *lista, unsigned long liczba)
{
el_listy *wsk, *nowy;
wsk = lista;
while (wsk->next != NULL)
{
wsk = wsk->next; /* Nie rozumiem jak dziala przesuwanie wskaznika, z tego co mysle to "wsk" to jest to el_listy *first tak ? a wiec jak to dziala el_listy *first = *wsk.next ? prosilbym o wyjasnienie jak dziala tutaj to przesuwanie. */
}
nowy =(el_listy*) malloc (sizeof(el_listy));
nowy->val = liczba;
nowy->next = NULL;
wsk->next = nowy;
}
void wypisz_liste(el_listy *lista)
{
el_listy *wsk=lista;
while( wsk != NULL )
{
printf ("%lu\n", wsk->val);
wsk = wsk->next;
}
}
int jest_pierwsza(el_listy *lista, int liczba)
{
el_listy *wsk;
wsk = lista;
while (wsk != NULL) {
if ((liczba%wsk->val)==0) return 0;
wsk = wsk->next;
}
return 1;
}
int main ()
{
unsigned long i = 3;
const unsigned long END = 1000;
first =(el_listy*) malloc (sizeof(el_listy));
first->val = 2; /* i tutaj te dwie linijki, ta i ta pod spodem z nextem... ten first->val i first-> next to bedzie to "wsk" uzywane w funkcjach tak ? w takim razie ktora ma wartosc */
first->next = NULL;
for (;i!=END;++i) {
if (jest_pierwsza(first, i))
dodaj_do_listy (first, i);
}
wypisz_liste(first);
return 0;
}