4.4.2 结构成员的访问
定义好结构类型、结构变量后,就可以引用结构变量了。结构变量中各成员的引用方式为:
结构变量名.成员名
例如,stu1.name表示结构变量stu1的name成员。这里“.”是成员运算符,为了便于记忆,不妨将“.”读成“的”。这样“printf("%s\n",stu1.name);”读成“输出stu1的name成员”。
如果结构类型的成员也是结构类型,则需使用点操作符一级一级地找到最低级的成员变量,比如“printf("%d年",stu1.birthday.year);”就用于输出stu1的birthday成员的year成员。
C语言规定,可以直接将一个结构变量的值赋给与之同类型的另一个结构变量。由于结构变量包括多个分量,因此要输入、输出或将值赋给结构变量都需要对结构成员进行访问,例如下面的语句就是不正确的,因为不能直接对结构变量进行输入输出:
scanf("%s",&stu1);
printf("%s",stu1);
而语句
stu1=stu2;
则是正确的。
下面的程序4-7.cpp用于从键盘输入一个学生的信息,并输出之。
程序中第18行struct student stu1;是定义一个名为stu1的结构变量,struct student是数据类型,就像int和float一样,只是int和float是由编泽系统定义好的基本类型名,而struct student则是编程者自己定义类型名。这里student是含有4个成员的描述个人信息的结构类型,而stu1是这种结构类型的变量。
光是定义结构类型,只是说明了这种类型的组成情况,系统不会为它分配内存空间,就像系统不为int和float等类型本身分配内存空间一样。只有在定义结构变量时系统才会给这一变量分配空间。比如,在程序4-7.cpp中,系统不会为student分配空间,而是为stu1分配内存空间。
程序的第21到32行,依次提醒并输入变量stu1的4个成员,程序第35到39行依次输出stu1变量的4个成员。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。