POINTERS AND STRUCTURES
Consider the following,
struct date {
int month, day, year;
};
struct date todays_date, *date_pointer;
date_pointer = &todays_date;
(*date_pointer).day = 21;
(*date_pointer).year = 1985;
(*date_pointer).month = 07;
++(*date_pointer).month;
if((*date_pointer).month == 08 )
......
Pointers to structures are so often used in C that a special operator exists. The structure pointer operator, the ->, permits expressions that would otherwise be written as,
(*x).y
to be more clearly expressed as
x->y
making the if statement from above program
if( date_pointer->month == 08 ) .....
/* Program to illustrate structure pointers */
#include <stdio.h>
main()
{
struct date { int month, day, year; };
struct date today, *date_ptr;
date_ptr = &today;
date_ptr->month = 9;
date_ptr->day = 25;
date_ptr->year = 1983;
printf("Todays date is %d/%d/%d.\n", date_ptr->month, \
date_ptr->day, date_ptr->year % 100);
}
So far, all that has been done could've been done without the use of pointers. Shortly, the real value of pointers will become apparent.