Programiranje u C-u

C26: Primjeri za korištenje pokazivača
Odredite ispis slijedećeg programa.

#include <stdio.h>
#include <string.h>

struct  sample {
        char *name;
        int *id;
        float price;
};

static char  product[] = "Franck kava";
static float price1 = 3.20;
static int   id = 773;

void printrecord( struct sample * );
void printrecord( struct sample *goods )
{
        printf("Ime = %s\n", goods->name );
        printf("ID = %d\n", *goods->id);
        printf("Cijena = %.2f\n", goods->price );
        goods->name = &product[0];
        goods->id = &id;
        goods->price = price1;
}

main()
{
        int code = 123, number;
        char name[] = "Pita od jabuka";
        struct sample item;

        item.id = &code;
        item.price = 1.65;
        item.name = name;
        number = *item.id;

        printrecord( &item );

        printf("Ime = %s\n", item.name );
        printf("ID = %d\n", *item.id);
        printf("Cijena = %.2f\n", item.price );
}

Što pokušavamo ispisati?

Na šta se procjenjuje?

npr,

        printf("ID = %d\n", *goods->id);
        %d je integer 
               mi želimo da vrijednost bude varijabla tipa integer 

        goods->id,
                što je id, to je pokazivač, pa mislimo na njegov sadržaj, 
                        stoga koristimo *goods->id
                koji procjenjuje na tip integer

Ime = Pita od jabuka
ID = 123
Cijena = 1.65

Ime = Franck kava
ID = 773
Cijena = 3.20

 ©Copyright B Brown. 1984-1998. All rights reserved.