栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言struct + union + enum基础

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言struct + union + enum基础

概述: 

structunionenum
成员类型成员类型自由成员类型自由整型数值常量
占有内存每个成语独立占有内存,修改一个成员不影响另外一个所有成员共用一块内存,所以修改一个会影响所有成员值一个元素的内存
使用场景节省内存适合做struct的成员变量替换整型常量

1.结构体

  1. 1 语法基础

  1.  2 结构体基本语法代码 
 11
 12 #include 
 13
 14 struct Student {
 15     char name[50]; //类型声明的时,成员结尾用分号
 16     int score;
 17     int num;
 18 };
 19
 20 typedef struct {
 21    char *name; //这里是指针类型,所以所占内存大小不变。
 22    double score;
 23    int num;
 24 } STUDENT;
 25
 26 static int MONTH = 12;
 27 int main () {
 28     struct Student tianqiang;
 29     struct Student *pStudent;
 30     strcpy(tianqiang.name, "qi");
 31     tianqiang.score = 98;
 32     tianqiang.num = 3;
 33
 34     printf("tianqiang.name = %s, tianqiang.score = %d, tianqiang.num = %d n", tianqiang.name, tianqiang.score, tianqiang.num);
 35     pStudent = &tianqiang;
 36     //pStudent->name = "jianmei";
 37     pStudent->num = 4;
 38     printf("tianqiang.name = %s, tianqiang.score = %d, tianqiang.num = %d n", tianqiang.name, tianqiang.score, tianqiang.num);
 39     printf("pStudent->name = %s, pStudent->score = %d, pStudent->num = %d n", pStudent->name, pStudent->score, pStudent->num);
 40
 41     STUDENT zeyu = {"y", 100, 1}; //定义通俗易懂赋值时,中间用逗号隔开,而不是分号
 42     printf("zeyu.name = %s, zeyu.score = %f, zeyu.num = %ld n", zeyu.name, zeyu.score, zeyu.num);
 43
 44     STUDENT *pZeyu = &zeyu;
 45     printf("sizeof(zeyu) = %ld, sizeof(pZeyu) = %ld n", sizeof(zeyu), sizeof(pZeyu));
 46     printf("sizeof(tianqiang) = %ld, sizeof(pStudent) = %ld n", sizeof(tianqiang), sizeof(pStudent));
 47
 48     printf("sizeof(MONTH) = %d n", sizeof(MONTH));
 49     return 0;
 50 }
 51 

2. union共用体

    2.1 union语法基础

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/917309.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号