学科分类
目录
C语言

通过指针访问结构体变量的成员

结构体变量与普通变量相同,在内存中都占据一块内存空间,同样可以定义一个指向结构体变量的指针。当程序中定义了一个指向结构体变量的指针后,可以通过“指针名→成员变量名”的方式访问结构体变量中的成员。

结构体指针的定义方式与一般指针类似,例如,定义一个指向struct Person结构体变量p的指针,并通过指针访问变量p中的成员,如例1所示。

例1 ptrStr.c

 1  #include <stdio.h>
 2  struct Person             //定义结构体类型struct Person
 3  {
 4    int ID;
 5    char name[10];
 6    char sex;
 7  };
 8  int main() 
 9  {
 10   struct Person p = { 0002,"zhouli",'F' };  //定义结结构体变量p
 11   struct Person* ptr = &p;          //定义指向变量p的指针ptr
 12   printf("%04d\n", ptr->ID);         //输出成员ID的值
 13   printf("%s\n", ptr->name);         //输出成员name的值
 14   printf("%c\n", ptr->sex);         //输出成员sex的值
 15   return 0;
 16  }

例1运行结果如图1所示。

图1 例1运行结果

在例1中,第2~7行代码定义了结构体类型struct Person;第10行代码定义了struct Person结构体变量p,并对其进行了初始化;第11行代码定义了一个指向结构体变量p的指针ptr;第12~14行代码分别通过指针ptr输出结构体变量p的各个成员值。由图1可知,通过结构体指针ptr成功访问了结构体变量p的各个成员。

点击此处
隐藏目录