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.