Hirdetés

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

  • Pttypang
    veterán

    Vegulis ezen kivul nincs tul sok dolog. Par aprosag:

    - az operatorok probalnak okosak lenni, ezert ha pl. inkrementalsz egy pointert (ami ugye egy sima elojel nelkuli egesz szam) akkor az nem feltetlen egyet ugrik, hanem annyit, amekkora annak a tipusnak a merete, amire mutat. Tehat pl. egy 64 bites double-ra mutato pointer egy 32 bites architekturan 8 bajttal novekszik, ha inkrementalod.

    double ertek = 5;
    double * a = &ertek;
    printf("%p\n", a);
    a++;
    printf("%p", a);

    >> 09FFB28
    >> 09FFB30
    Ketto kulonbsege: 8

    - a tomb az nem mas, mint a tomb kezdetere mutato pointer

    .. most jo lenne, ha konkret dolgokat kerdeznel :)

    Szóval ez kb arra jo, hogy atadhassak tomboket, a fuggveny pedig ha a parametereknel megadom int *-kent a tombot, akkor nem is kell semmi mast tennem, ezzel at is van adva a tomb es vegezhetek a fuggvennyel muveleteket rajta ugy, hogy nem kell foglalkoznom a visszaadással, mert a memoriacimen talalhato adatokkal dolgozik? Szoval nagyjabol ertem, de megis fura, hogy erre kulon kell valamit alkalmazni..
    pl:
    #include <stdio.h>
    int darab (int * tomb, int meret);
    int main()
    {
    int meret;
    printf("Kerem az elemek szamat\n");
    scanf("%d",&meret);
    int elemek[meret];

    printf("A 10-nel nagyobb elemek szama:%d",darab(elemek,meret));

    return 0;
    }

    int darab (int * tomb, int meret)
    {
    int i;
    int tobbmint=0;
    for(i=0;i<meret;i++)
    {
    if(tomb[i]>10)
    {
    tobbmint+=1;
    }
    }
    return tobbmint;
    }

    [kihagytam az adatbevitel tobbi reszet, nem akartam megirni az egeszet a scanf-el, csak osszedobtam gyorsan, hogy lassam a dolgot.]

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