1. 格式
struct 结构体名
{
数据类型 成员1;
数据类型 成员2;
....
};
struct 结构体名 *指针变量名
2. 结构体指针指向普通变量的地址
struct CAR
{
char name[10];
int price;
};
struct CAR car={"byd",160};
struct CAR *p=&car; //p是指向结构体变量car的指针
// p->name 等价于car.name
// (*p).name //不常用
// (&car)->name //不常用
// p->price 等价于car.price
//(*p).price //不常用
//(&a)->price //不常用
3.结构体指针指向结构体数组的地址
struct CAR
{
char name[20];
int price;
};
struct CAR car[3]={"byd", 160,"wuling",50,"geely", 90};
struct CAR *p=car; //数组指针
for(int i=0;i<3;i++)
{
printf("%s %d\n",(p+i)->name,(p+i)->price);
}
4.结构体指针指向堆区的内存
struct CAR
{
char name[10];
int price;
};
struct CAR car[4];
struct CAR *p=(struct CAR*)malloc(sizeof(struct CAR)*4);