C++指针和引用.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
void main() { Employee* pA[6] = {allone[0], allone[1], allone[2], allone[3], allone[4], allone[5]}; //指针数组 Employee *temp; for(int i=1; i6; i++) { //排序 for(int j=0; j=5-i; j++) { //一轮比较 if (pA[j]-salary pA[j+1]-salary) //比较工资成员 { temp=pA[j]; //指针变量的交换 pA[j]=pA[j+1]; pA[j+1]=temp; } } } for(int k=0; k6; k++) //输出 cout pA[k]-name pA[k]-id pA[k]-salaryendl; } * 总结 指针变量的特点是可变性,即一个指针变量内的地址是可变的。所以,通过一个指针变量,就可以访问一个数组。 引用的特点是不变性,一个变量的引用就只能和这个变量联系在一起。彼此随着对方的变化而变化。 函数调用的另一种方式:地址调用。具体又分为指针调用和引用调用。 动态内存的使用:在程序中使用语句分配和释放内存空间。 * 可以申请二维数组的空间: int (*pi_marray)[4]; pi_marray = new int[3][4]; 备注:: int ? *p[n] ? ? // ? 数组p[n],其元素为int*的指针 int(*p)[n] ? //指针p,指向具有n个元素的数组;所以p+1,实际上p的地址加了n * * 6.6.2 引用作为函数参数 引用使用最多的场合是作为函数的形式参数。 引用作为函数的形式参数具有以下的特点: 引用作为形式参数时,实参数是相同类型的变量; 引用作为形式参数,参数传递属于地址传递; 引用作为形式参数时,在函数中并不产生实参数的副本,形式参数的引用和实参数的变量实际上是同一个实体; 函数对引用的操作,也是对实参变量的操作,函数调用可以改变实参数的值。 例6.9 用引用作为形式参数,通过函数调用,交换两个实参数。 #include iostream using namespace std; void swap_1(int x, int y) //引用作为形式参数 { int j; j=x; x=y; y=j; } void main() { int a=12345, b=54321; cout 函数调用前:a= a b=bendl; swap_1(a, b); //变量作为实参数 cout 函数调用后:a= a b=bendl; } * 函数调用前:a= 12345 b=54321 函数调用后:a= 54321 b=12345 * 6.6.2 引用作为函数参数 使用引用作为形式参数还需要注意: 如果实参数需要保护,可以使用“常引用”作为形式参数; 用引用作形参和用变量作形参是有区别的,但是,对于这两种情况,实参数可能相同。例如,函数swap(int a, int b)和swap(int a, intb)看起来是两个可以区分的重载函数。但是,都可以用整型变量x和y来调用:swap(x, y),因此,实际上是不可区分的,函数swap(int a, int b)和swap(int a, intb)不是可以区分的重载函数。 * 6.6.3 常指针 常指针是指向常量的指针(Pointer to Constant data)的习惯说法。就是规定指针所指向的内容不可以通过指针的间接访问来改变。 常指针说明的格式是: const 类型名 *指针名; 例如: const int *ptint; 指针ptint的类型是(const int *),也就是指向一个恒定的整型数。 * 例6.10 常指针示例。观察以下程序的运行。 #include iostream using namespace std; void main() {int ia=10, ib=20; const int *ptint; ptint=ia; //用ia地址初始化 cout*ptintendl; ptint=ib; //改变为ib的地址 ib=ib+100; //ib本身仍然可以改

文档评论(0)

有一二三 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档