Co się kryje pod zmienną.

0

...
int a =2, b = a , *c=&b, *&d = c;
...

to że c zawiera adres b okej prosty wskaznik nie ma co tłumaczyć, ale nie rozumiem *&d=c , czy oznacza to ze d zawiera adres wskaznica c?

edycja : aha jeszcze taka funkcja void(*f[])(int) = {b1,b2};
i wywolania:

f+(1); tego nie rozumiem podejzewam ze pod b1 jest przypisywana wartosc
(*f)(1); tu nie wiem

0

Macron - dzięki , ktoś podpowie , powie 2 zdania odnośnie funkcji?

0

*&d = c

To chyba blad skladni, nie ma takiej zmiennej. Zmienna moze byc zwykla, gdzie odwolanie do niej powoduje dostep do pamieci, lub z gwiazdka, ze jak sie odwolujesz do niej bez gwiazdki to tak jakbys sie odwolywal do normalnej zmiennej (1 dostep do pamieci), ale jak uzyjesz gwiazdki (*a = cos) to pierw wyciagasz adres spod a, i pod te dane piszesz cos - 2 dostepy do pamieci, 1 ze zmiennej, 2gi z tego co zawiera. Gwiazdka jest po to, bo inaczej nie mozesz sie odwolac do danych spod adresu.

i gwiazdka powinna byc przy deklaracji typu, wg mnie przynajmniej.

f+(1);

adres funkcji f + 1

0

nie wiem czy blad skladni czy nie, przepisalem calosc skompilowalem i odpalilo, to taki bardzo maly urywek wyrwany z kontekstu z koła zeszłorocznego

0

Nie to nie jest błąd składni, ale referencja do wskaźnika

0

Należy patrzeć najbliżej od nazwy zmiennej. Najpierw jest & czyli referencja, potem * czyli do wskaznika itd. Tak samo z funkcjami

0
f+(1);

to samo co f+1;

 czymkolwiek to <code noframe>f

tutaj jest. nawias dla picu.

(*f)(1);

to samo co f(1);

 czyli wywołanie funkcji (jeśli <code noframe>f

jest nazwą funkcji lub wskaźnikiem na funkcję).

0

ok wszystko łapie , dzieki

1 użytkowników online, w tym zalogowanych: 0, gości: 1