您的位置:首页 > 编程语言 > C语言/C++

c、c++结构类型

2016-03-26 23:48 615 查看
结构类型:用户自定义类型,由固定多个不同的元素(称为成员)构成的复合数据。

C++

结构类型的定义:struct <结构类型名> {<成员表>}

或匿名结构:struct {<成员表>} <变量名> (必须有变量名)【不能用来 定义其它的变量】

结构类型变量的定义:<结构类型名> <变量名表>

或 struct <结构类型名> <变量名表>(沿用了C语言用法)

结构类型的操作:

访问:<变量名>.<成员名>

关于变量名:不同结构类型的成员的名字可以相同;以下用法也合法:

struct A{……};

int A;

A=1; //把1赋值给整形变量A

【!!这种情况下如果要使用结构类型A,必须:struct A a;】

对结构类型的数据可以进行整体赋值,但只能在相同的结构类型之间进行。

初始化:A a={…,…,…};【定义结构类型时不能对其成员进行初始化,因为类型不是程序运行时刻的实体,它们不占有内存空间,对它们初始化是没有意义的。】

c语言

用法:typedef struct A a; a newA;

或 struct A{…,…}; struct A newA;

【为什么第一种必须typedef?

https://zh.wikipedia.org/wiki/Typedef

另外一些特殊的用法:

实现寄存器:

typedef union {
union {
uint32_t _32;
uint16_t _16;
uint8_t _8[2];
} gpr[8];
struct{
uint32_t eax, ecx, edx, ebx, esp, ebp, esi, edi;

swaddr_t eip;
};
} CPU_state;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: