在开始之前,请先阅读以下代码:
typedef struct Dog Dog; // 将Dog定义为类型名称
struct Dog // 结构体类型定义
{
int age;
int height;
char name[20];
char father[20];
char mother[20];
};
以下代码显示如何为Dog
结构体类型创建指针。
Dog *pdog = NULL;
这声明了一个指针pdog
,它可以存储Dog
类型结构的地址。如果没有typedef
,则必须将语句编写为:
struct Dog *pdog = NULL;
可将pdog
设置为具有特定结构的地址值:
struct Dog *pdog = NULL;
Dog adog = { 3, 11, "A", "B", "C"};
pdog = &adog;
这里pdog
指向adog
结构。指针可以存储狗数组中元素的地址:
pdog = &my_dog_array[1];
现在pdog
指向结构my_dogs [1]
,它是my_dogs
数组中的第二个元素。要显示此结构体的name
成员,可以这样写:
pdog = &my_dog_array[1];
printf_s("The name is %s.\n", (*pdog).name);
也可以像这样编写:
pdog = &my_dog_array[1];
printf_s("The name is %s.\n", pdog->name );
这样的话,就不需要括号或星号了。