Wskaźniki do funkcji i wywoływanie funkcji
Ostatnio zmodyfikowano 2018-09-07 20:15
wojtek1985 Temat założony przez niniejszego użytkownika |
Wskaźniki do funkcji i wywoływanie funkcji » 2018-09-07 07:52:17 np. mamy tablicę
const double av[3]={2.3232,5.21323,6.32312};
Załóżmy że mamy taką oto funkcję
//deklaracja
const double * f1 (const double *, int );
//definicje sobie pomińmy nie ma znaczenia;
//chcemy zadeklarować do tego wskaźnik więc robimy tak:
const double* (*p1) (const double ar[] , int n);
// teraz zadeklarujmy tablicę wskaźników
const double* (*pn[3]) (const double ar[] , int n);
// mając tablicę możemy zadeklarować taki oto wskaźnik:
auto pb=pn;
i teraz moje pytanie brzmi:
jeśli nazwa tablicy jest adresem jej pierwszego elementu to bp jest adresem pierwszego elementu tablicy pn czy pb (jedno i drugie wskazuje ten sam element) skoro tak to *pb jest jej pierwszym elementem czyli wskaźnikiem na funkcję więc dlaczego nie możemy wywołać takiej funkcji w taki sposób
np.
(*pb)(av,3);
bo w taki już możemy np.
pb[0](av,3) ???
przecież (*pb) jest równe pb[0] czyż nie??????? |
|
Monika90 |
» 2018-09-07 09:43:54 Można tak wywołać, (*pb)(av,3) i pb[0](av,3) to jest to samo.
I oczywiście nazwa tablicy jest nazwą tablicy, a nie jakimś tam adresem. |
|
wojtek1985 Temat założony przez niniejszego użytkownika |
» 2018-09-07 20:15:55 Faktycznie próbowałem wywołać to w taki sposób *pf(av,3) a to trzeba (*pf)(av,3) Temat zamknięty
|
|
« 1 » |