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.