结构体指针
1.结构体指针定义
当一个指针指向结构体时,就叫结构体指针,一般形式:
struct 结构体名 *变量名
-
2.举例
struct stu { char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 } stu1 = { "Tom", 12, 18, 'A', 136.5 }; //结构体指针 struct stu *pstu = &stu1; //stu是结构体名,stu1是结构体变量名 注意:结构体变量名和数组名不同,数组名在表达式中会被转换为数组指针,而结构体变量名在任何表达式中它表示的都是整个集合本身,要想取得结构体变量的地址,必须在前面加& 还应该注意:结构体名和结构体变量名不一样,结构体时钟数据类型,编译器不会给分配空间,就像int char 等关键字本身不占用内存,结构体变量才是真正的数据,余姚内存来存储数据,不可能将一个结构体名赋值给其他变量,例如: struct stu *pstu = &stu; struct stu *pstu = stu;
-
3.结构体成员
获取结构体指针成员变量的一般形式: (*指针).成员变量 或者: 指针->成员变量 第一种写法中,.的优先级高于*,去掉括号写作*pointer.memberName,那么就等效于*(pointer.memberName),这样意义就完全不对了。