- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 构造类型 6.1 数组类型 6.2 枚举类型 6.3 结构类型 6.4 结构化数据 6.5 抽象数据类型 6.6 自定义类型 6.1 数组类型 6.1.1 数组定义 6.1.2 数组的赋值与使用 6.1.3 数组的存储 6.1.4 数组的初始化 6.1.5 字符数组 6.1.6 指针与数组 6.1.1 数组定义 数组定义格式如下: 6.1.2 数组的赋值与使用 数组的引用只能是对数组元素的引用。 数组Letter的元素的第i行第j列的元素表示为Letter[i][j], Student的第5个元素表示为Student[4] (即,第一个元素的下标为0)。 int m[10]; for(int i=0; i9; i++) m[i]=i*2+1; 赋值后m[0]为1,m[1]为3,...,m[9]为19。 6.1.3 数组的存储 无论是一维数组还是多维数组,维数的概念及数组行列的分布仅存在于源程序的语句中,数组在内存中都是线性连续存储的,即多维数组在内存中是按一维数组进行存储的。 6.1.4 数组的初始化 在数组定义时对数组元素赋初值—数组初始化。 6.1.5 字符数组 6.1.6 指针与数组 6.1.6 指针与数组 6.2 枚举类型 6.2.1 枚举类型定义 6.2.2 枚举变量定义 6.2.3 类型转换 6.2.1 枚举类型定义 枚举类型定义 6.2.2 枚举变量定义 6.2.3 类型转换(略) 6.3 结构类型 6.3.1 结构的定义 6.3.2 结构的使用 6.3.3 结构的实现 6.3.1 结构的定义 struct PERSON // 说明结构类型 PERSON { int age; // 说明成员age long height; float weight; char name[25]; } family_member; // 定义 PERSON 结构类型的对象(变量) struct PERSON sister; // C 风格的结构说明 PERSON brother; // C++ 风格的结构说明 PERSON girl={ 10, 130, 40, “Marry”}; //结构变量初始化 6.3.2 结构的使用 对于指向结构类型的指针,使用 - 运算符访问其结构成员,例如: PERSON *pPerson=new PERSON; pPerson-age=25; strcpy(pPerson-name, Jack); 对于结构类型的变量,使用 . 运算符访问结构成员,例如: PERSON man; Man.age=25; man.name=new char[5]; strcpy(man.name, Jack); 对结构类型变量的赋值需要通过对其成员逐一赋值实现,也可以通过简单的存储块复制实现结构类型变量的整体赋值,例如: PERSON girl={ 10, 130, 40, Marry}; PERSON who; memcpy(who, girl, sizeof PERSON); 6.3.2 结构的使用 结构类型变量可以如同一般变量一样作为函数的参数,例如: struct PERSON void PrintStudentInfo(PERSON man) { { …… } int age; main() long height; { float weight; PERSON p={10, 130, 37, Frank}; char name[25]; PrintStudentInfo(p); }; } 更好的风格是以结构引用作为函数形参,这样参数传递效率较高: void PrintStudentInfo(const PERSON man) { …… } 结构可以嵌套,形成相对复杂的结构,其初始化和成员访问如下: VC++环境中运行例6.2,观察结构变量各组成元素的值 可以说明结构类型数组: struct PERSON { int age, char name[30] }; PERSON man[3]={{11, Bob}, {10, Sam} , {10, Tom}}; coutman[2].ageendl; 6.3.3 结构的实现 结构类型数据对象存储在连续内存单元中,结构成员在内存中顺序排列,尽管各成员的存储长度可能不同。每个成员的地址偏移量在编译时确定,结
文档评论(0)