Hirdetés

Új hozzászólás Aktív témák

  • emvy
    félisten

    Igen, az angollal elevickelek.

    Ott tartok, hogy az eloadas folian le van irva, hogy mi is ez pontosan, de ezzel nem igazan vagyok elorebb, mert nem ertem, hogy miert jo ez. Marmint mire hasznalhato, meg pontosan hogyan.. Szoval a gyakorlati alkalmazasat valamiert nem latom at.

    A pointereken kivul a tombok fuggvenyeknek parameterkent valo atadasa sincs meg, de szerintem erre megoldast talalok majd valamelyik eloadas folian.

    A strukturakkal egyelore meg nem foglalkoztam, eloszor ezeket szeretnem megerteni, megtanulni a hasznalatukat normalisan.

    Van a neten csomofele leiras, erdemes rakeresni, de probaljuk meg itt is.

    Ugyebar C-ben (es mas imperativ prog. nyelvekben is) vannak valtozoink, vagy nevezzuk oket inkabb ertekeknek, mert az tokmindegy, hogy valtoznak-e vagy sem. A forditonak megprobaljuk megmondani, hogy milyen tipusu az az ertek, amit letrehozunk. (A tovabbiakban tegyuk fel, hogy sima 32 bites arhichitekturan vagyunk). Pl.:

    double a = 1;

    Egy valtozorol mindig ket dolgot tudunk: mekkora helyen fer el (hany bitnyi hosszu), es hogyan ertelmezzuk. Azt, hogy hogyan/minek ertelmezzuk, szoktak tipusnak is nevezni.
    Most 'a'-rol a kovetkezoket tudjuk:
    - 64 bitnyi informacionk van
    - ezt egy elojellel rendelkezo lebegopontos szamkent ertelmezzuk

    Ha van egy ilyenunk:

    double * a;

    .. akkor errol az tudjuk, hogy
    - 32 bitnyi informacionk van
    - ez egy egesz szam, es ugy ertelmezzuk, mint egy memoriacimet. A memoriacimen pedig egy 64 bit hosszu lebegopontos szamot talalunk.

    Tehat a pointer egy jellemzoen 32 vagy 64 bitnyi informaciot tartalmazo szam. A memoria szepen be van szamozva 0-tol 2^32 vagy 2^64-ig. Ha ahhoz a memoriarekeszhez mesz, aminek a szama megegyezik a pointer ertekevel, akkor ott egy olyan erteket talalsz, aminek a tipusa a pointer tipusaban jelezve is van.

    A pointert a * jelzi altalaban. Ha van pl. egy
    double ** a;

    akkor az a kovetkezo jelenti, analog modon:
    - van egy 32 bites ertekunk
    - ez egy egesz szam, es ugy ertelmezzuk, mint egy memoriacimet. A memoriacimen pedig egy 32 bit hosszu egesz szamot talalunk, amit ugy ertelmezunk, mint egy 32 bites erteket, amit ugy ertelmezzunk, mint egy memoriacimet. A memoriacimen pedig egy 64 bit hosszu lebegopontos szamot talalunk.

    Ez idaig vilagos?

    (Tobbieknek: szandekosan vagyok pontatlan az int, double, etc. meretevel kapcsolatban.)

Új hozzászólás Aktív témák