- 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++) 第6章 指 针 教师:杨振平 E-mail: zpyang@ctec.xjtu.edu.cn 地址与指针 ─ 地 址 内存是由若干存储单元组成。 存储单元的编号称为存储单元的地址, 简称地址。 程序中的变量、数组或函数等,在内存中都有其确定的地址。 指针是C++的一种数据类型。 指针变量存放变量的内存地址。 指针变量的定义 指针变量的定义格式: 类型 *变量名; 例: int a; int * ptr; ptr=a; 说明: a是一个int型变量, ptr是一个指向int型的指针变量, ptr中存放a变量的地址,即ptr指向a 如何通过指针访问它指向的变量? 如:a=100; ptr=a; 使用*ptr访问a变量,此时, *ptr与a等同。 则 cout*ptr“ “aendl; a+= *ptr; cout*ptr“ “aendl; 6.2 指针运算 -取地址运算符 * - 指针运算符 指针赋值运算 例如,int a,*jp,*ip; jp=a; ip=jp; // ip和jp都指向a。 指针的关系运算 指针可以比较大小,即按地址值比较。 指针的算术运算 指针±整数=指针 指针1 - 指针2=整数 指针的赋值运算 阅读程序,分析结果: int a,b,*p=a,*q=b,*w; cin*p*q; cout“a=“a“\t”“b=“bendl; w=p; p=q; q=w; cout*p“\t”*qendl; 例6.1编写交换两个变量值的函数 (函数参数为指针类型) void swap(int *xp, int *yp) { … } int main() { … swap(x,y); … return 0; } 6.3 指针与数组 数组在内存中连续存放,每个数组元素有确定的内存地址; 数组名表示数组的首地址,它是一个常量指针; 数组指针-是指向数组元素类型的指针,使用数组指针,能方便访问数组中的元素。 例6-2 数组清零 编写函数,对具有len个数组元素的实型数组实现清0处 理,形参使用数组指针。 函数原形: void clear_array(float *ptr, int len); 算法1: for(k=0;klen;k++) *(ptr+k)=0.0; 算法2: float *qtr = ptr+len; while (ptrqtr) { *ptr = 0.0; ptr++; } 测试主函数 测试结果 例6-3:字符串复制 函数原型: void mystrcpy(char *destin, char *source); 函数功能: 将source指向的字符串,复制到destin为首地址的空间中。 调用格式:mystrcpy(str1,str2); 其中:str1为字符数组 str2为字符串 6.4 动态存储分配 使用静态数组存在的问题: 定义n个元素的一维数组array。 int n; cinn; int array[n]; 。。。。 使用指针和new运算符---用于动态申请所需的内存空间 动态申请单个变量: 指针变量 = new 类型(初值); 例: double *p; p=new double; *p=100.0 或 p=new double(10
文档评论(0)