就像指向变量的指针一样,指向结构的指针也可以定义。
struct myStruct *struct_ptr;
定义指向myStruct结构的指针。
struct_ptr=&struct_var;
将结构变量struct_var的地址存储在指针struct_ptr中。
struct_ptr -> struct_mem;
访问结构成员struct_mem的值。
例如
struct student{ char name[50]; int number; int age; }; //结构指针作为函数参数 void showStudentData(struct student *st) { printf("\nStudent:\n"); printf("名字: %s\n", st->name); printf("序号: %d\n", st->number); printf("年龄: %d\n", st->age); } struct student st1 = {"Krishna", 5, 21}; showStudentData(&st1);
->运算符允许通过指针访问结构的成员。
(*st).age 与 st->age 相同
此外,当使用typedef来命名结构时,则只使用typedef名称、*和指针名称来声明指针。