Previously, we disccussed user-defined data type (= struct) on this webpage: click here
For review, here is an example program on how to define and use a struct typed variable:
#include <stdio.h>
/* ------------------------
Structure definition
------------------------ */
struct BankAccount
{
int accNum;
double balance;
};
struct BankAccount a; // Global variable
int main(int argc, char *argv[])
{
struct BankAccount b; // Local variable
a.accNum = 123; // Access member fields
a.balance = 1000.0;
b.accNum = 444;
b.balance = 3000.0;
printf("a.accNum = %d a.balance = %f\n", a.accNum, a.balance);
printf("b.accNum = %d b.balance = %f\n", b.accNum, b.balance);
}
|
|
#include <stdio.h>
/* ------------------------
Structure definition
------------------------ */
struct BankAccount
{
int accNum;
double balance;
};
struct BankAccount a;
int main(int argc, char *argv[])
{
struct BankAccount b;
struct BankAccount *p; // Reference variable to type "struct BankAccount"
p = &a; // Now: *p is alias for a
(*p).accNum = 123; // This statement is equal to: a.accNum = 123;
(*p).balance = 1000.0; // This statement is equal to: a.balance = 1000.0;
p = &b; // Now: *p is alias for b
(*p).accNum = 444; // This statement is equal to: b.accNum = 444;
(*p).balance = 9999.0; // This statement is equal to: b.balance = 9999.0;
printf("a.accNum = %d a.balance = %f\n", a.accNum, a.balance);
printf("b.accNum = %d b.balance = %f\n", b.accNum, b.balance);
}
|
Output:
cs255-1@aruba (5584)> a.out a.accNum = 123 a.balance = 1000.000000 b.accNum = 444 b.balance = 9999.000000 |
Important note:
|
How to run the program:
|