当前位置: 首页 > news >正文

内蒙古住房城乡建设厅网站网站建设服务标准化

内蒙古住房城乡建设厅网站,网站建设服务标准化,wordpress调试模式,wordpress 总数 函数C语言——结构体与共用体 结构体共用体 结构体 如果将复杂的复杂的数据类型组织成一个组合项#xff0c;在一个组合项中包含若干个类型不同#xff08;当然也可以相同#xff09;的数据项。 C语言允许用户自己指定这样一种数据结构#xff0c;它称为结构体。 结构体的语法… C语言——结构体与共用体 结构体共用体 结构体 如果将复杂的复杂的数据类型组织成一个组合项在一个组合项中包含若干个类型不同当然也可以相同的数据项。 C语言允许用户自己指定这样一种数据结构它称为结构体。 结构体的语法定义 struct 结构体名 { 成员列表 }; 其中struct关键字表示在构造一个结构体类型结构体名用来该结构体这个类型的名称成员列表表示要描述的复杂数据中用到的具体的成员变量成员列表的定义方式和普通变量的定义方式相同。例如下面定义一个student结构体类型 struct student { char name[20]; int sno; int age; char sex[10]; float score; }; 在studen这个结构体中包含了姓名name、学号sno、年龄age;、性别sex[10];分数score;这些数据类型该结构体可以用来描述一个学生的基本信息。注意在结束一个结构体的定义时要在右括号“}”后面加上一个括号。 上述只是结构体的一种定义变量还有其余两中结构体的定义方式 1、 struct student { char name[20]; int sno; int age; char sex[10]; float score; }s; 这里在定义结构体的同时也定义了一个结构体这种数据类型的变量s这样写就可以直接使用该变量了。 2、 struct { char name[20]; int sno; int age; char sex[10]; float score; }s; 这里在定义结构体类型的同时也定义了变量,可以省略结构体名这种定义方式表示该结构体类型只能使用一次。 结构体的初始化 结构体初始化: 结构体的初始化也是采用初始化器去对结构体进行初始化 struct student s { “tom”, 1, 18, “man”, 99 }; 结构体初始化的规则 1、看每个成员变量具体是什么数据类型。 2、根据各个成员变量自身的数据类型进行初始化。 3、初始化的顺序要按照定义的顺序依次进行初始化。 其实还可以在定义结构体的同时定义变量然后进行初始化 struct student { char name[20]; int sno; int age; char sex[10]; float score; }s { “tom”, 1, 18, “man”, 99 }; 结构体的成员变量引用的方式 结构体的引用成员变量方式一共有两种一个是通过结构体变量名.成员名另一个是结构体指针-成员名下面以一个例子来具体说明结构体成员变量的引用方式 #include stdio.hstruct student {char name[20];int age;char sex[10];float score; };int main(int argc, const char *argv[]) {struct student s { tom, 18, man, 90 };printf(name : %s\n, s.name);printf(age : %d\n, s.age);printf(sex : %s\n, s.sex);printf(score : %.2f\n, s.score);return 0; } 上述代码中定义了一个struct student的结构体类型然后在main函数定义变量的同时进行了初始化在打印结构体的数据时采用了结构体变量名.成员名的方式。 #include stdio.h #include stdlib.hvoid outputStu(struct student *s, int len) {int i 0;for(i 0; i len; i){printf(name : %s\n, (si)-name);printf(Sno : %d\n, (si)-Sno);printf(age : %d\n, (si)-age);printf(sex : %s\n, (si)-sex);printf(score : %.2f\n, (si)-score);printf(\n);} }int main(int argc, const char *argv[]) {struct student s[3] { { tom, 1, 18, m, 99 }, { jerry, 2, 18, w, 90 }, { lucy, 3, 18, w, 92 } };outputStu(s, 3);return 0; } 上述程序将outputStu()函数的形参设置成结构体指针去接收一个结构体指针在打印结构体成员变量时采用了结构体指针-成员名的方式。 结构体的大小 结构体的大小遵循内存对齐规则 结构体的对齐规则: //内存地址的对齐 1.在32位的平台上默认都是按4字节对齐的。 2.对于成员变量 各自在自己的自然边界上对齐。 char – 1字节 short – 2字节 int – 4字节 3.如果成员变量中有比4字节大。 此时整个结构体按照4字节对齐。 //32位的平台 4.如果成员变量中没有有比4字节大。 此时整个结构体按照最大的那个成员对齐。 注意在32位的平台下 //如果有超过4字节 按照4字节对齐 //如果没有超过4字节的则按成员变量中最大对齐 在64位的平台下 //如果超过4字节的按超过的最大的成员变量对齐 //如果没有超过4字节的则按成员变量中最大对齐 首先要知道的是系统读取内存当中的数据时是4个字节4个字节地读取的这样的读取方式能提高数据的读取效率和解析效率。 下面以一些例子来说明 #include stdio.hstruct s {char a;short b;int c; };int main(void) {struct s aa;printf(sizeof(struct s) %ld\n, sizeof(struct s));return 0; } 我所用的平台是64为的平台所以下面也就主要说明64为平台下的内存对齐规则。在上述程序定义的结构体的成员变量所占的字节总共是7个字节其中没有超过4字节的则按成员变量中最大对齐char a;占一个字节它可以放在能被1整除的地址编号的内存当中short b;占两个字节放在a的后面且放在首地址编号能被2整除的内存当中int c;占四个字节它放在首地址能被4整除的内存空间当中最终整个结构体也要对齐该结构体没有超过4字节的则按成员变量中最大对齐也就是8个字节。 #include stdio.hstruct s {char a;//一字节double b;//八字节int c;//四字节 };int main(void) {struct s aa;printf(sizeof(struct s) %ld\n, sizeof(struct s));return 0; } 在上述程序定义的结构体的成员变量所占的字节总共是13个字节其中有超过4字节的double类型char a;占一个字节它可以放在能被1整除的地址编号的内存当中double b;占八个字节放在a的后面且放在首地址编号能被8整除的内存当中int c;占四个字节它放在首地址能被4整除的内存空间当中最终整个结构体也要对齐该结构体有超过4字节的则按成员变量中最大对齐也就是24个字节。 共用体 共用体的语法: union 共用体名 { 成员变量; }; 语法定义例子 union demo { char a; short b; int c; }; 共用体成员变量共用的是一块内存空间且公用的是最大成员的空间 。 在使用共用体时要注意: 1.共用体初始化时只能给一个值默认时给到第一个成员的。 2.共用体变量中的值取决与最后一次给到的值还要看能影响几个字节。 利用共用体判断当前操作系统是大端还是小端存储 #include stdio.hint isLittleEndian(void) {union s{int a;char b;}c { 1 };return c.b; }int main(int argc, const char *argv[]) {printf(%d\n, isLittleEndian());return 0; } 上述程序的共用体在初始化时给了一个1一位int a;char b;共用的是同一块空间它们对应的首地址也是相同的如果当前系统为小端存储那么1在存储时低位数据就会存放在地址所以如果是小端存储1就放在高位地址则isLittleEndian()函数返回的是1反之就返回0。
http://www.dnsts.com.cn/news/92080.html

相关文章:

  • 找个免费网站这么难吗购物网站排名
  • 重庆1000元网站建设普通网站和营销型网站的区别
  • 产品网站有哪些郑州人才市场网站
  • 共享网站的建设与规划建设银行在上海的招聘网站
  • 做视频直播类型的网站快手网页版
  • 网站开发网站开发用什么架构
  • 注册万网后网站怎么赚钱的网站需求表
  • 中国建设银行官网站额度申请手机网站建站系统
  • 企业网站建设的基本原则seo入门培训课程
  • 网站建设装什么系统永州静默管理
  • 怎么做捕鱼网站做301跳转会影响之前网站排名吗
  • 做网站打广告网页制作大宝库官网
  • 厦门商城网站开发开源软件开发平台
  • 公司网站建设多少费用广州百度快速优化排名
  • html网站设计范例濮阳建站公司哪个好
  • 有域名了如何建网站商业网站开发
  • 湖北建设部网站建立公司的流程
  • 本标准在住房城乡建设部门户网站单位网站建设工作功劳
  • php 简单购物网站织梦可以做论坛网站
  • 一站式服务中心wordpress code标签
  • 常德网站建设 天维电子商务网站html模板
  • heritrix做网站网站策划布局
  • 资深做网站公司郑州网站推广公司
  • 聊城网站设计wordpress新页面代码
  • 做资讯类网站需要什么资质什么网站用php做的
  • 写作网站最大现在可以做网站么
  • 港口建设申报网站中小企业怎么优化网站
  • 江苏中南建设集团网站是多少钱vs2012 建网站
  • 网站设计分析报告公司注册网站及流程
  • 我想找个郑州做网站的高端创意网站建设