@hauleth: Jak rozumiem jest tu deklaracja nowego wskaźnika typu int o nazwie a i przypisywana jest mu dokładnie taka sama wartość co rng().
Po wyłuskaniu poprzez *a dostajemy wartość pod wskazaną pozycją, czyli 7.
Wydaje mi się, że rozumiem, ale brakuje mi tu możliwości zobaczenia tego na przykładzie i raczej nie byłbym w stanie napisać poprawnej funkcji do tego programu.
Generalnie napisanie funkcji C zwracającej wskaźnik, ambitniejszej niż szkolne demo, jest niebanalne. Nie tyle przez kod, bo jest łatwy, ile przez DOKŁADNE udokumentowanie założeń
a) albo wskaźnik powstał przez malloc -> musi być zzwolniony przez kod kliencki
b) albo wskaźnik do obszaru statycznego -> zwykle tzreba uważać na wątki, czas aktualności statycznego bufora itd...
c) w nowszych dialektach/wersjach języka zwraca const lub nie
d) jeszcze inne kombinacje
zarówno a) jak i b) szeroko występują w bibliotece standardowej
Demo jest proste
int * fun(){
static int buf;
return &buf.
}
Sam sobie rozpoznaj, który to wariant