O ile dobrze rozumiem, chcesz wiedziec dlaczego uzywa sie wskaznikow, zamiast zrobic tak jak Ty?
Sprobuj do swojej funkcji wyslac inna zmienna np niech to bedzie zmienna c. Twoja funkcja w tym przypadku nie zadziala, bo i tak zmieni wartosc zmiennej a. Musialbys zrobic kolejna funkcje i tak dla kazdej nowej zmiennej. Nie mowiac juz o fakcie ze takie zmienne musza miec zasieg globalny zeby mozna wewnatrz wywolywanej funkcji zmieniac ich wartosc. Tymczasem tworzac funkcje:
qq(int *b)
{
b=5;
}
zmienimy wartosc kazdej wyslanej zmiennej typu int.
Rozumiesz mniej wiecej o co chodzi?