同结构体类似,共用体变量要先定义后引用。不能引用共用体变量,只能引用共用体变量中的成员。
C语言规定引用共用体成员有两种方式:用“.”成员运算符方式和指针方式。
用“.”成员运算符方式引用共用体变量中成员的格式为:
通过共用体指针引用共用体成员的格式为:
例如:
那么,变量a中各成员的引用形式为a.classNum和a.office。通过指针b引用各成员的形式为b->classNum和b->office 。
例10.11 共用体变量的输入和输出。
编写程序:
创建一个名为“eg10_11.c”的新文件,在编辑窗口中输入下面的程序代码。
运行结果:
程序说明:(www.daowen.com)
先给office成员赋值为English,共用体地址中的值是字符串“English”。接着给class-Num成员赋值为49,共用体地址中的值是49。后赋的值会重写共用体所在的存储单元。输出a.classNum的值是49;输出a.office的值是1,而不是字符串“English”。因为在共用体单元中,按整型数据形式存放了49,要按“%s”格式输出a.office,系统就到共用的存储单元去读数据,将存储单元中的内容按存储数据的规则解释。由于字符“1”的ASCII码值为49,因此,输出字符“1”。
这个例题说明:共用体变量不是同时存放多个成员的值,而是仅能存放一个成员的值。
例10.12 如何存储学校入员的基本信息。
编写程序:
创建一个名为“eg10_12.c”的新文件,在编辑窗口中输入下面的程序代码。
运行结果:
程序说明:
结构体struct person中嵌套了共用体union department, dep是一个共用体union department类型的变量,per是结构体struct person类型的数组。在共用体union department中,office成员是一个字符数组。
“ printf ( " No. name age occupation department \ n" ) ;”语句中,双引号("")内的字符串之间用tab键分割。例如,No.与name之间空一个tab键。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。