|
|
|
|
struct StructName *varName ; |
Meaning:
|
|
|
|
|
|
struct BankAccount { int accNum; double balance; }; int main(int argc, char *argv[]) { struct BankAccount a, b; a.accNum = 123; a.balance = 1000.0; b.accNum = 444; b.balance = 3000.0; struct BankAccount *p; // Define a ref. var. to a struct p = &a; // Make p point to a printf("After p = &a\n"); printf("(*p).accNum = %d (*p).balance = %f\n", (*p).accNum, // = (*p) is a, so (*p).accNum is a.accNum (*p).balance); // = (*p) is a, so (*p).balance is a.balance p = &b; // Make p point to b printf("After p = &b\n"); printf("(*p).accNum = %d (*p).balance = %f\n", (*p).accNum, // = (*p) is b, so (*p).accNum is b.accNum (*p).balance); // = (*p) is b, so (*p).balance is b.balance } |
How to run the program:
|
|
Illustrated (using the BankAccount struct):
|
struct BankAccount { int accNum; double balance; }; int main(int argc, char *argv[]) { struct BankAccount a, b; a.accNum = 123; a.balance = 1000.0; b.accNum = 444; b.balance = 3000.0; struct BankAccount *p; p = &a; // Make p point to a printf("After p = &a\n"); printf("p->accNum = %d p->balance = %f\n", p->accNum, p->balance); // p->accNum is short hand for (*p).accNum p = &b; // Make p point to b printf("After p = &b\n"); printf("p->accNum = %d p->balance = %f\n", p->accNum, p->balance); } |
How to run the program:
|
|