文档介绍:结构体指针
LOGO
掌握结构体指针变量的定义及引用
Teacher teaching design
CONTENTS
目 录
结构体指针的定义
结构体指针的使用
结构体数组的指针
结构体指针变量结构体指针
LOGO
掌握结构体指针变量的定义及引用
Teacher teaching design
CONTENTS
目 录
结构体指针的定义
结构体指针的使用
结构体数组的指针
结构体指针变量的定义
PART 01
struct stu
{
int num;
char *name;
char sex;
float score;
}stud;
struct stu *pstu;
举例感知
struct 结构名 *结构指针变量名
说明:要定义结构体指针变量,首先定义好结构体类型。
结构指针变量说明的一般形式:
结构指针变量的定义
一个指针变量当用来指向一个结构变量时,称之为结构指针变量。
结构指针变量中的值是所指向的结构变量的首地址。
(1)结构指针变量也必须要先赋值后才能使用。
注意
添加标题内容
(2)赋值是把结构变量的首地址赋予该指针变量,不能把结构体名赋予该指针变量。
结构指针变量的定义
(3)结构体名和结构变量是两个不同的概念,不能混淆。
结构体名只能表示一个结构形式,编译系统并不对它分配内存空间。只有当某变量被说明为这种类型的结构时,才对该变量分配存储空间。
结构体指针变量的使用
PART 02
<指针变量名>=&<结构体变量名> ;
赋值形式:
例如:
pstu=&stud ;
结构体指针变量的赋值
(*pstu)两侧的括号不可少,因为成员符“.”的优先级高于“*”。如去掉括号写作**(),这样,意义就是从pstu结构体变量的成员num保存的地址中获取数据,其意义完全不同。
例如
2
(*pstu).num
或者:
pstu->num
注意
3
(*结构指针变量).成员名
或为:结构指针变量->成员名
引用的一般形式为:
1
结构体指针变量的使用
struct stu
{
int num;
char *name;
char sex;
float score;
} boy1={102,"Zhangping",'M',},*pstu;
main()
{
pstu=&boy1;
printf("Number=%d\nName=%s\n",,); printf("Sex=%c\nScore=%f\n\n",,);
printf("Number=%d\nName=%s\n",(*pstu).num,(*pstu).name); printf("Sex=%c\nScore=%f\n\n",(*pstu).sex,(*pstu).score);
printf("Number=%d\nName=%s\n",pstu->num,pstu->name);
printf("Sex=%c\nScore=%f\n\n",pstu->sex,pstu->score);
}
(1)
(2) (*结构指针变量).成员名
(3) 结构指针变量->成员名
这三种用于表示结构成员的形式是完全等效的。
从运行结果可以看出:
结构体指针使用举例
结构体数组
的指针
PART 03