结构体,联合体,枚举体这三种数据结构的感想
来源:互联网 发布:淘宝代购怎么开店 编辑:程序博客网 时间:2024/06/05 06:22
一、结构体
一般自己构造的数据结构类型(如数组)这只能放一种的数据类型。但是有时候需要多种不同的数据类型,这些数据类型是相互联系的,所以建立了一种新的数据类型--结构体。
结构体的说明:结构体的类型和变量是不同的,重点区分。只能低变量进行赋值,存取和运算而不能对一个类型。在编译时是不会给类型分配内存空间的,只能对变量分配内存空间。对结构的成员可以单独使用。结构体的成员可以是本身的结构体(如在链表中的应用)。链表是一个动态分配内存的,主要用到了三个函数:malloc(作用是在内存的动态存储区分配一个长度为size的连续空间),calloc(起作用就是载内存的动态存储区中分配n个长度为size的连续空间)。free(释放以上两个函数申请的内存)。
C语言中的结构体和C++中的结构体和类的区别:C中的结构体是不能声明函数的,而C++中的结构体可以声明函数.
c++中的结构体和类有什么区别,c++中类和结构体,都可以声明private,public,protect来限制访问权限,都可以加成员函数。也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。类中的非static成员函数有this指针,(而struct中没有是错误的,一直被误导啊,经过测试struct的成员函数一样具有this指针),类的关键字class能作为template模板的关键字 即template<class T> class A{}; 而struct不可以。
C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。
二、共用体(union)
几个不同变量共占用同一段内存的结构称为共用体。共用体特点:同一个内存段可以用来存放几种不同类型的成员,但是在每一瞬时只能存储其中的一种数据。共用体变量中起作用的是最近存储的成员,在新的成员存放成员后原有的成员就失去了作用。共用体的地址和成员的地址是统一地址。不能对共用体赋值也不能初始化共用体。
三、枚举体
如果一个变量有几种可能的值,就可以用枚举体来定义,将每个值列举出来enum.有人说不用枚举体而用常数0代表某一个特定意思,1代表某个特定的意思。这样做是可以的,但是没有枚举体那么直观,令人“见名知意”的标示符。枚举体变量的值限制在定义是规定的几个枚举体元素的范围,如果赋予其他的值,就出现错误信息,便于检测。
枚举体的实现可以由宏定义来实现,为什么用枚举体更好呢?因为宏定义实现的话,必须先定义一个整形变量,然后再将宏定义的赋给这个变量。这样没有检错的功能,没有枚举体那么直观。- 结构体,联合体,枚举体这三种数据结构的感想
- 结构体、联合体、枚举
- 结构体、联合体、枚举
- 结构体、联合体、枚举的特性
- 结构体,联合体,枚举体
- 结构体、枚举和联合体
- 枚举、结构体、联合体的简单应用程序-C语言
- 结构体、联合体和枚举类型
- C语言-结构体+联合体+枚举
- C++基础2:结构体、联合体、枚举
- 自定义数据类型--联合体、枚举、结构体
- 结构体类型-枚举类型-联合体类型
- 自定义类型:结构体,枚举,联合体
- 自定义类型:结构体,枚举,联合体
- 自定义类型---->结构体,枚举,联合体
- 联合体里面的结构体
- 结构体,联合体的对齐
- 《c/c++之结构体,联合体,枚举类型》
- IIS6和IIS7下都可以用的伪静态工具ISAPI_Rewrite3的使用说明
- 32位系统中四字节对齐问题
- 创业者该知道的10件事
- Silverlight缩略图生成(使用WriteableBitmap类)
- Access restriction: Class is not accessible due to restriction on required library 错误
- 结构体,联合体,枚举体这三种数据结构的感想
- 虚函数、纯虚函数详解
- SVN与Git比较
- 程序员的十大谎言
- AIR-开机自启动
- 图像处理基础理论-颜色
- 谷歌开始支持CardDAV协议与iOS同步联系人信息
- 3D视觉盛宴——SuperMap Realspace 立体显示技术
- sift 坐标系的旋转问题 源代码解析