- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言知识点ch06v2007
CH6 : Array and Pointer CH6 : Array and Pointer 6.1数组 1. 定义数组 2. 访问数组元素 3. 多维数组 4. 数组作为函数参数 5. 对象数组 6.2 指针 1. 定义指针 2. 使用指针间接访问 3. 数组与指针 4. 函数与指针 5. 对象与指针 6. 动态内存管理 6.3 向量std::vector 6.1数组 1. 定义数组 2. 访问数组元素 3. 多维数组 4. 数组作为函数参数 5. 对象数组 1. 定义数组 (1) 定义数组(Array) 语法:type-name array-name [ const-expression ]; 例:int a[5]; (2) 初始化 int a[5] = {1,2,3,4,5}; int a[5] = {0}; int a[] = {1,2,3}; 2. 访问数组元素 (1) 下标 语法:array-name [ index ] 例:a[0] a[i] (2) 下标越界错误 超出下标范围访问数组元素。 “边界值验证法” 3. 多维数组 (1) 多维数组即是“元素是数组”的数组。 可以用一维数组来理解多维数组。 (2) 存储顺序 int a[3][4]; 4. 数组作为函数参数 (1) 数组作为函数参数 int sum ( int a[], int n ) { int s = 0; for ( int i=0; in; ++i ) s += a[i]; return s; } 4. 数组作为函数参数 数组本身不保存元素个数的信息,所以一般同时使用一个整型参数表示数组中的元素个数。 int sum ( int a[], int n ) 数组作为函数参数时,传递的是首元素地址而不是整个数组中的数据。 int sum ( int a[5], int n )等价于 int sum ( int *a, int n )等价于 int sum ( int a[], int n ) 4. 数组作为函数参数 (2) 注意类型匹配 int sum2d ( int a[][3], int n ); int main() { int a[3][4] = {…}; int b[4][3] = {…}; sum2d ( a, 3 ); //编译错误 sum2d ( b, 4 ); //OK } 5. 对象数组 数组元素是对象 Cat a[3] = { Cat(a), Cat(b), Cat(c) }; 注意这里的初始化方法。 调用成员函数 a[0].eat(5); a[i].talk(); 5. 对象数组 数组与缺省构造函数 如果类没有缺省(无参数)构造函数,则在定义数组时必须进行初始化。 Cat a[3] = { Cat(a), Cat(b), Cat(c) }; 否则会因为无法创建对象而出现编译错误。 Cat b[2]; //编译错误 如果类有缺省(无参数)构造函数,如:Cat::Cat(),就可以不提供数组的初始化。 Cat b[2]; //OK,调用Cat::Cat()两次。 6.2 指针 1. 定义指针 2. 使用指针间接访问 3. 数组与指针 4. 函数与指针 5. 对象与指针 6. 动态内存管理 1. 定义指针 (1)存储单元的地址 每个内存单元都有唯一的地址。 一个变量可能占用多个内存单元,则其最低地址为该变量的地址。 用指针存储地址。 (2)定义指针 语法:type-name *pointer ; 例:int *p; 定义指针后立即初始化,可以防止“野指针”。 例:int *p = a; 1. 定义指针 (3)空指针(null pointer) 空指针 NULL 即 0。 常用于表示指针不指向任何有效的存储单元。 2. 使用指针间接访问 通过指针可以间接访问存储在该地址的数据。 int a = 3; int *p = a; *p = 4; cout “a=“ a endl; // a=4 3. 数组与指针 (1)指针指向数组中的元素 (2)指针运算 (3)数组名作为固定指向首元素的指针 (4)指针作为数组元素 (5)指向数组的指针 (6)二维数组与指针 (1)指针指向数组中的元素 int a[5] = {1,2,3,4,5}; int *p; p = a[1]; *p = 20; p = a[2]; *p = 30; (2)指针运算 根据数组存储的连续性,有 (3)数组名作为固定指向首元素的指针 数组名a看作固定指向数组首元素a[0]的指针 int a[5]; a 就是 a[0] 于是, a+1 就是 ? a+i 就是 ? *(a+i)
文档评论(0)