C语言结构体(2)访问结构体的成员

       学习了结构体的定义,可以用结构体来定义变量。例如上面我们讨论的读者结构体类型,我们可以用它来定义一个读者变量,如下:

struct reader r1;

       那么,假设现在要登记注册一个读者信息,给r1变量的name成员设置读者姓名,应该怎么样操作?此时,我们就涉及到访问结构体成员的问题,有如下方式:

(1) 如果结构体变量是非指针类型,访问结构体成员的格式如下:

结构体变量名.成员名

       就是在结构体变量名后面,接着一个点号“.”运算符,然后,再接着要访问成员的名称。例如:

struct reader r1;

r1.name    //访问 r1 结构体变量的name成员;

r1.age //访问 r1 结构体变量的nage成员;

r1.number  //访问 r1 结构体变量的number成员;

       通过这种方式,可以访问非指针类型的结构体变量的成员。

(2) 如果结构体变量是指针类型,访问结构体成员的格式如下:

结构体指针变量名->成员名

       就是在结构体指针变量后面,接着指针操作符,就是一个向右的箭头符号“->”,然后,再接着要访问成员的名称,例如:

struct reader* pr1;

pr1->name  //访问 pr1 指针指向结构体变量的name成员;

pr1->age      //访问 pr1 指针指向结构体变量的nage成员;

pr1->number   //访问 pr1 指针指向结构体变量的number成员;

       下面我们结合程序测试代码分析结构体成员的访问方法,程序测试代码如下:

C语言结构体(2)访问结构体的成员

       程序运行结果如下:

C语言结构体(2)访问结构体的成员

       通过测试例子,我们知道变量r1是一个结构体变量,访问其成员通过点号“.”运算符来访问。指针变量pr是结构体指针变量,访问其指向变量的成员,通过指针运算符“->”来访问。下面我们将尽结构体指针变量的时候,再详解指针变量访问结构体成员的操作。

更多的交流可以访问:www.mylinux.vip   加QQ:1523520001,微信:13926572996,备注:linux编程;
学习、分享更多的linux C/C++ 编程知识。