一、基本形式
定义一个指针用来指向一个结构体变量时,该指针中的值就是它所指向的结构体变量的首地址,通常称为结构体类型指针。 结构体类型指针定义的一般形式如下:
结构体类型名 * 结构体类型指针变量名
指针访问结构成员的方式:使用“.”运算符访问结构体成员的一般形式如下:
(*结构体类型指针变量).成员名 例如,语句 (*s).num = 20140102;
用“->”运算符 使用“->”运算符访问结构体成员的一般形式如下 :
结构体类型指针变量->成员名 例如,语句 s -> num = 20140102;
相关概念:
定义一个指针用来指向一个结构体数组时,该指针中的值就是它所指向的结构体数组的首地址,通过该指针便可访问数组中的每一个元素。
接下来我们思考一个实例:
struct student
{
long num;
char name[20];
char sex;
float score[3];
};
struct student s[10],*p=NULL;
p=s;
说明:访问第i个学生的姓名可以写成“(p+i)->name”或“(*(p+i)).name”
二、回顾结构体和结构体数组
定义结构体
struct date
{
int year;
int month;
int day;
};
定义结构体数组
struct student s[4] = { {2011531,"zhang", 'F', 1978, 5, 23},
{2011532,"wang", 'M', 1979, 2, 15},
{2011533,"liang", 'F', 1981, 7, 5},
{2011534,"yang", 'F', 1982, 5, 20} };