文章标题
来源:互联网 发布:中国银行淘宝卡 编辑:程序博客网 时间:2024/06/07 20:20
结构体
我们知道存储大量整型数据可以用定义int a[N]的方式处理,其他的还有char a[N]、int *p[N]等,但是要存储多个类型的数据就只能靠结构这个数据类型。
结构的概念
结构是一种特殊的数据类型,它由程序员构造而非编程语言固有的基本数据类型.
结构的声明
1.它可以由多个不同的基本数据类型构成,如:
struct student{int a;double b;char c;};//注意分号,代表声明结束,就像函数声明一样
2.它也可以由构造的数据类型组成,如:
struct date{int year;int month;};struct student{struct date brithday;};
结构的引用
当用上述方法声明了结构体类型后,接下来就要用该结构体类型定义一个结构体变量。例如要定义一个struct student类型的名为stu数组,可以在
声明结构体类型的时候定义变量
struct student{int StudentID;char name[10];char sex;int score[4];}stu[16];
也可以声明后再定义
struct student{int StudentID;char name[10];char sex;int score[4];};struct student stu[16];
结构的内存
结构的内存与对齐方式有关
1.默认的对齐方式
struct sample{char a;int b;char c;};
在《c语言程序设计》中,简单的方法是将结构体中每一个变量都与占最大字节数的成员对齐,如上,char型本来只占一个字节,但为其分配和int型占的4个字节(新添的3个字节是空白的),为了能让int型在一次内存访问中通过,因此struct sample共占3*4=12个字节的内存; 另外一种高大上的算法是计算偏移量,第一个数据的偏移量是0,第二个数据的偏移量是1,但是1不是sizeof(int)的倍数,要加上3字节才能成为sizeof(int)的倍数,第三个数据的偏移量是8,是sizeof(char)的倍数,这时总内存为1+3+4+1=9,而9不是sizeof(int)的倍数,再加上3字节,最后总内存就是12.
2.自定义字节对齐方式
用pragmapack(n)来设定变量以n字节对齐方式,然后方法与上述一致。
阅读全文
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- html+js实现城市联动、日期联动示例
- 基于windows版本下不同服务器上redis 的主从复制配置
- iOS OS X 和 iOS 中的多线程技术-3 (NSThread)
- 前端css知识大全——解读浏览器默认样式
- ubuntu系统用scp向RK3399发送文件
- 文章标题
- Python入门笔记三
- IO流
- 算法日志(1)------数据结构讲解
- 初识http之referer字段
- C/C++语言基础_static,const,sizeof
- Tensorflow学习笔记-变量管理
- Freeswitch 命令和Appliation 应用的介绍
- TensorFlow在线预测