在C中,结构体比较简单,可以声明任何类型的成员变量(除了void 类型 or void× 类型),但不能封装一些方法,没有public,protect,private等属性,声明结构体关键字struct,结构体中可以嵌套结构体,结构体的赋值比较简单,有多种方法,就不再介绍。在结构体完成定义,程序进行编译时,结构体中成员变量在内存中的对齐方式,跟计算机编译时的编译器有关,也和计算机是32位或者64位有关,说下在32位系统下: struct test{ int a, int b,char a }; 在这个结构体中,结构体中的成员变量在内存中int 所占的字节数最大,成员变量按4字节对齐,char 只占一个字节 按四字节补齐,所以这个结构在内存中占12字节,假如 struct test{ int a ,char b, char c,int d} 在这个结构体中,由于char 占一个字节,2个char型在内存中地址连着,出4字节补齐,所以整个结构体占12字节,在内存中的分配对齐不懂的话,在下面提问!!
联合体:union,共享内存地址,操作方法与结构体类似,如声明与赋值等。在联合体中如 union test{ int a ,char b} 这个联合体在内存分配上只占四字节,且a 和b 占用同一块内存,当其中a已经赋值,再给b赋值的话,会覆盖a的数据,反过来同样如此
在C++中 结构体和c中的结构体是相同的,不过C++中的结构体成员变量默认是共有属性的!class 中的成员变量默认是私有属性的,class和struct 基本是相同的,可以这么说,class是struct 的一个扩展,但是也有些不同!struct继承默认是公有属性的,class是私有属性的!class中可以封装一些方法,通过继承实现多态!
就写这么多吧!可能写的比较乱!又不懂得在下面提问吧!!!