Aktywne Wpisy
stanley___ +320
dawid-poselski +28
Też was śmieszy i żenuje to Polskie podejście do aut? Albo mam pecha do znajomych, albo sporo osób ma jakieś kompleksy samochodowe. Kilka sytuacji z mojego życia:
1. Sąsiadowi auto się popsuło i mówi, że będzie nowe kupował. Znam gościa od dawna, ledwo mu na opłaty starcza (emeryt) to myślałem, że jakąś fabie 20 letnią sobie kupi. Kupił sobie jednak 5 letnie Clio. Po chwili gadki, okazało się, że kupił od AAA
1. Sąsiadowi auto się popsuło i mówi, że będzie nowe kupował. Znam gościa od dawna, ledwo mu na opłaty starcza (emeryt) to myślałem, że jakąś fabie 20 letnią sobie kupi. Kupił sobie jednak 5 letnie Clio. Po chwili gadki, okazało się, że kupił od AAA
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
potem traktując te obszary jako int odejmuje wartości i zwraca
(int*)a
a kolejna gwiazdka wydobywa wartość spod adresu.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.
@Kaczus2B: OMG