Practise Exercise 11a: Pointers & Structures
This program introduces a structure which is passed to a function
editrecord() as a reference and accessed via a pointer goods.
Determine the output of the following program.
#include <stdio.h> #include <string.h> struct record { char name[20]; int id; float price; }; void editrecord( struct record * ); void editrecord( struct record *goods ) { strcpy( goods->name, "Baked Beans" ); goods->id = 220; (*goods).price = 2.20; printf("Name = %s\n", goods->name ); printf("ID = %d\n", goods->id); printf("Price = %.2f\n", goods->price ); } main() { struct record item; strcpy( item.name, "Red Plum Jam"); editrecord( &item ); item.price = 2.75; printf("Name = %s\n", item.name ); printf("ID = %d\n", item.id); printf("Price = %.2f\n", item.price ); }
1. Before call to editrecord()
2. After return from editrecord()
3. The final values of values, item.name, item.id, item.price