指针与结构体
结构体变量的指针样式:
&结构体变量名
- 定义指向结构体变量的指针:
结构体类型 *指针变量名;
- 使用结构指针访问结构体变量中的成员
- 格式1:
(*指针变量).name
- 格式2:
指针变量->name
其中:->
称为结构指向运算符
- 格式1:
结构体指针应用
使用结构指针访问日期结构类型变量
struct Date
{
int year;
int month;
int day;
}
int main()
{
Date d={2015, 4, 8}, *p=&d; // 定义日期结构变量和指针变量
cout << (*p).year << "-" <<(*p).month << "-" << (*p).day <<endl;
cout << p->year << "-" << p->month << "-" << p->day << endl;
return 0;
}
有下列表示按钮的结构体和声明语句
struct BUTTON{
int x,y;
int width,height;
char name[20];
};
struct BUTTON top[10],*p=top;
下列哪个输入“按钮”名称的语句是正确的?
A.cin>>p.name;
B.cin>>p->name;
C.cin>>p[0]->name;
D.cin>>p[0].name;
答案是BD
原因:p是指向的是结构体数组指针,数组的起始位置
p->name
指向第一个元素的指针,然后通过该指针去找namep[0].name
: 第一个元素的name