`

C++复杂类型

    博客分类:
  • C++
阅读更多

基础:

1.赋值:

结构体的赋值,是值传递不是引用传递。

 

 

结构体(struct):

1.结构体的典型定义:

 

 

typedef struct tagSTUDENT{
	int id;
	char name[20];
	bool sex;
}STUDENT,*PSTUDENT; 

 

struct tagSTUDENT1{
	int id;
	char name[20];
	bool sex;
}initStudent = {123,"222",true}; 
 

2.typedef:利用此关键字可以重命名一个类型(包括复合类型),降低引用和定义之间的耦合度。

 

3.结构体内存计算规则:

(1)复杂类型的内存分配,前N个变量所占内存必须被第N+1个变量整除。如果第N+1个不能整除,就把内存补到第N个上(2)所有的变量占的内存总和应该可以被最大的变量整除,把内存补到最后一个变量后。

在定义复杂类型的时候,需要考虑变量的先后顺序,来确保浪费的内存最少。

 

4.结构体里面的变量个数:结构体的地址,与它的第一个子的地址是一样的。所以,如果按照地址来划分对象个数,结构体的对象个数为其子的个数。联合体对象只有一个,因为它的数据保存在同一块内存当中。

 

 

联合体(union):联合体中只有一个子起作用,所以必须注意最后一个被赋值的是谁。

1.联合体的定义:

 

union tagAny{
	char c;
	short n;
	int i;
	float f;
	double d;
}
 

2.联合体内存计算:联合体的内存大于或等于其中最大的一个子的长度(并且保障,长度为所有子的整数倍)。

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics