Wpis z mikrobloga

Uczę się C i zastanawiam się jak działa ten kod.

1. Zdaję się że rozumiem jak działa komparator- w przypadku sortowania zwraca informację czy zmienna z danym indeksem ma być przesunięta czy też nie (poprawcie mnie jeżeli się mylę) 

2. Ale mam problem ze zrozumieniem zapisu (int)a - o co w tym chodzi? Dlaczego tutaj jest zadeklarowany wskaźnik dwa razy? I w jaki sposób to działa? 

int cmpfunc (const void * a, const void * b)
{
return (* (int\*)a - *\(int\*)b );
}

Kod wziąłem stąd. 
http://www.tutorialspoint.com/c_standard_library/c_function_qsort.htm

#ansic #c #programowanie #wskazniki
  • 7
@b0lec:
1. Nie. Zwraca roznice dwoch liczb.
2. nie mozesz zrobic dereferencji na void*, dlatego najpierw rzutujesz na int* a potem robisz dereferencje *. * nie oznacza tylko i wylacznie deklaracji wskaznika, to jest tez operator dereferencji.