C语言程序设计完整版全套PPT教程最全电子讲义.pptVIP

  • 1
  • 0
  • 约 100页
  • 2023-03-15 发布于江西
  • 举报

C语言程序设计完整版全套PPT教程最全电子讲义.ppt

C语言程序设计完整版全套PPT教程最全电子讲义C语言程序设计完整版全套PPT教程最全电子讲义C语言程序设计完整版全套PPT教程最全电子讲义

例如: Struct { int age; char *addr; union{ int i; char *ch; }x; }y[10]; 若要访问结构变量y[1]中联合x的成员i, 可以写成: y[1].x.i; 若要访问结构变量y[2]中联合x的字符串指针ch的第一个字符可写成: *y[2].x.ch; 若写成y[2].x.*ch;是错误的。 2、联合变量的说明 联合变量的说明和结构变量的说明方式相同, 也有三种形式。即先定义,再说明、定义同时说明和直接说明。 以联合变量department为例,说明如下: union department { int grade; char office; }; union department a,b; /*说明a,b为department类型*/ 或者: union department { int grade; char office; }a,b; /*同时说明a,b为department类型*/ 或者: union { int grade; char office; }a,b /*直接说明a,b为department类型*/ 经说明后的a,b变量均为department类型。a,b变量的长度应等于 department 的成员中最长的长度, 即等于 office数组的长度,共10个字节。a,b变量如赋予整型值时,只使用了2个字节,而赋予字符数组时,可用10个字节。 对联合变量的赋值、使用都只能是对变量的成员进行。 联合变量的成员表示为: 联合变量名.成员名 例如,a被说明为department类型的变量之后,可使用 a. grade或a.office 。不允许只用联合变量名作赋值或其它操作。也不允许对联合变量作初始化赋值,赋值只能在程序中进行一个联合变量, 每次只能赋予一个成员值。一个联合变量的值就是联合变员的某一个成员值。 【例11-4】设有一个教师与学生通用的表格,教师数据有姓名,年龄,身份,教研室四项。学生有姓名,年龄, 身份,班级四项。编程输入人员数据, 再以表格输出。 #includestdio.h #define N 3 int main() { struct { char name[15]; int age; char status; union { int grade; char office[20]; } depa; }body[3]; int i; for(i=0;iN;i++) { printf(input name:\n);/*提示语*/ gets(body[i].name); /*gets函数接收带空格的姓名*/ printf(input age:\n); scanf(%d,body[i].age); getchar(); /*吸收上一句输入的回车符*/ printf(input status(s or t) :\n); body[i]. status=getchar(); if( body[i]. status==s) { getchar(); /*吸收上一句输入的回车符*/ printf(input grade:\n); scanf(%d,body[i].depa.grade); getchar(); /*吸收上一句输入的回车符*/ } else { getchar(); /*吸收上一句输入的回车符*/ printf(input office:\n); gets(body[i].depa.office); } } printf(name\t\tage status grade/office\n); for(i=0;iN;i++) { if(body[i].status==s) printf(%15s\t%3d%3c%20d\n,body[i].name,body[i].age,body[i].status,body[i].depa.grade); /*对齐输出数据*/ else

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档