[关闭]
@coder-pig 2022-09-06T17:25:00.000000Z 字数 1479 阅读 421

小猪的C语言快速入门系列(六)

C语言


本节引言

上一节中,我们学习了复合数据类型中的 指针,作为C语言的灵魂,务必要好好
掌握,看本教程是肯定不够的,通过练习的方式加深熟练度,后面学数据结构,
指针是必不可少的!!!本节我们来把剩下的几个复合数据类型过一过,他们
分别是:函数结构体共用体枚举类型


本节学习路线图


函数

Tips

空函数就是什么都不做的函数,一般我们开发中不需要立即实现的函数,我们可以
先写一个空函数放着先,简单的空函数示例: void abc(){ }


结构体


共用体

代码示例2
建立一个共用体类型,当输入的时学生类型时,要求输入的是学生id,
当输入的是老师类型的时候,要求输入老师职称

  1. #include <stdio.h>
  2. union type
  3. {
  4. int cid; //班级
  5. char title[20]; //职称
  6. };
  7. struct Person
  8. {
  9. char name[10]; //姓名
  10. char sex; //性别
  11. int age; //年龄
  12. int flag; //标志是老师还是学生
  13. union type tp;
  14. };
  15. int main()
  16. {
  17. struct Person person[10];
  18. int i;
  19. int num;
  20. char ch;
  21. printf("请输入要录入的人数:\n");
  22. scanf("%d",&num);
  23. for(i = 0;i<num;i++)
  24. {
  25. printf("请输入第%d个人员的信息:\n",i + 1);
  26. printf("姓名: ");scanf("%s",&person[i].name);getchar();
  27. printf("性别: ");scanf("%c",&person[i].sex);getchar();
  28. printf("年龄: ");scanf("%d",&person[i].age);
  29. printf("职业标识符: ");scanf("%d",&person[i].flag);
  30. if(person[i].flag == 0)
  31. {
  32. printf("请输入学生的班级id: ");
  33. scanf("%d",&person[i].tp.cid);
  34. }
  35. else if(person[i].flag == 1)
  36. {
  37. printf("请输入老师的职称: ");
  38. scanf("%s",&person[i].tp.title);
  39. }
  40. else
  41. {
  42. printf("输入有误,请重新输入!\n");
  43. i -= 1;
  44. }
  45. }
  46. printf("\n输出所有录入人员的信息:\n");
  47. for(i = 0;i<num;i++)
  48. {
  49. printf("输出第%d个人员的信息:\n",i + 1);
  50. printf("姓名: ");puts(person[i].name);
  51. printf("性别: ");printf("%c",person[i].sex);
  52. printf("\t年龄: ");printf("%d",person[i].age);
  53. if(person[i].flag == 0)
  54. {
  55. printf("\t学生的班级id: ");
  56. printf("%d\n",person[i].tp.cid);
  57. }
  58. else if(person[i].flag == 1)
  59. {
  60. printf("\t老师的职称: ");
  61. puts(person[i].tp.title);
  62. }
  63. }
  64. return 0;
  65. }

运行结果


枚举


类型定义符(typedef)

其实就是类型别名而已,一般是定义结构体的时候用得较多。


本文链接小猪的C语言快速入门系列(六)
作者:Coder-Pig
出处http://blog.csdn.net/coder_pig
本文基于知识共享署名-相同方式共享 4.0 国际许可协议发布,欢迎转载,
演绎或用于商业目的,但是必须保留本文的署名及链接。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注