[elektro] megint C

SZIGETI Szabolcs szigiszabolcs at gmail.com
Wed Dec 5 16:50:00 CET 2012


Hali!

Erről a következőt érdemes megjegyezni. Egy tömb neve megegyezik a tömb
első (ami ugye nulladik a C-ben) elemére mutató pointerrel. Ennek az a
magyarázata, hogy a C-ben nincsenek igazából tömbök, csak pointerek,
illetve pointeraritmetika, ami ugye leginkább azt jelenti, hogy a fordító
tudja a pointer által mutatott adat méretét, és automatikusan odaképzeli az
ezzel történő szorzást a memória cím kiszámításába.

Összefoglalva  double t[10];
esetében t ugyanaz mint &t[0], amiből következik, hogy *t az t[0] illetve
általánosságban *(t+i) ugyanaz, mint t[i] (kell a zárójel, mert a *
precedenciája miatt).

És ugye ebből jön az ismert példa: t[3] --> *(t+3) --> *(3+t) --> 3[t], és
ezt minden C fordító megeszi.

Szabolcs



2012/12/5 Arnold Fuzesi <arnold.fuzesi.lista at gmail.com>

> sbufpointer = &sbuffer[0];
>
> Vagy
>
> sbufpointer = sbuffer;
>
> Arnold
> Sent from my iPhone
>
> On 2012.12.05., at 16:21, Skandar Graun <sgraun at gmail.com> wrote:
>
> > sbufpointer = &sbuffer
>
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list