1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6_指针

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 指针变量也可以指向一个函数 一个函数在编译时被分配给一个入口地址,这个函数入口地址就称为函数的指针 可以用一个指针变量指向函数,然后通过该指针变量调用此函数 int (*p)(int,int); 定义一个指针p,可以指向有两个整型参数,返回整型值的函数 6.5 函数与指针 6.5.1 用函数指针变量调用函数 * 例6.14 求a和b中的大者 …… int max(int x,int y){ int z; if(xy) z=x; else z=y; return(z); } 一般方法: int main( ){ int a,b,m; cinab; m=max(a,b); cout″max=″mendl; return 0; } * 使用函数指针: int main( ){ int (*p)(int,int); int a,b,m; p=max; cinab; m=p(a,b); cout″max=″mendl; return 0; } 函数指针变量作为函数的参数,就可以使程序根据的不同实参调用不同的函数 在面向对象的C++程序设计中,这种用法比较少了 6.5.2 用指向函数的指针作函数参数 * 函数返回指针型的数据,即地址 定义指针函数的一般形式为 类型名 *函数名(参数表列); 例如 int *a(int x,int y); 6.6 返回指针值的函数 * 如果一个数组,其元素均为指针类型数据,该数组称为指针数组 一维指针数组的定义形式为 类型名 *数组名[数组长度]; 例如:int *p[4]; 注意区分:int (*p)[4] 可以用指针数组中各个元素分别指向若干个字符串,使字符串处理更加方便灵活 6.7 指针数组和指向指针的指针 6.7.1 指针数组的概念 * 例6.15 若干字符串按字母顺序(由小到大)输出 …… int main( ){ void sort(char *name[],int n); void print(char *name[],int n); char *name[]={″BASIC″,″FORTRAN″, //5个字符串并 ″C++″,″Pascal″,″Java″}; //非顺序存储 int n=5; sort(name,n); print(name,n); return 0; } void print(char *name[],int n){ int i; for(i=0;in;i++) coutname[i]endl; } * void sort(char *name[],int n){ char *temp; int i,j,k; for(i=0;in-1;i++){ k=i; for(j=i+1;jn;j++) if(strcmp(name[k],name[j])0) k=j; if(k!=i){ temp=name[i]; name[i]=name[k]; name[k]=temp; } } } * * print函数也可改写为以下形式: void print(char *name[],int n){ int i=0 char *p; p=name[0]; while(in){ p=*(name+i); coutpendl; i++; } } * 定义方法: char *(*p); 或: char **p; …… int main( ){ char **p; //定义指针p,可以指向字符数组(字符串) char *name[]={″BASIC″,″FORTRAN″, ″C++″,″Pascal″,″Java″}; p=name+2; cout*pendl; cout**pendl; } 6.7.2 指向指针的指针 * 运行结果为 C++ C (略) 6.8 有关指针的数据类型和指针运算的小结 * 引用是一种新的变量类型,它的作用是为一个变量起一个别名 int a; int b=a; //声明b是a的引用 是引用声明符,并不代表地址 经过这样的声明后,a和b的作用相同,代表同一变量 b和a占内存中的同一个存储单元,它们具有同一地址,不需要另外开辟内存单元来存放b *6.9 引用 6.9.1 什么是变量的引用 * 在声明一个引用类型变量时,必须同时使之初始化 初始化之后,不能修改引用关系 int a1,a2; int b=a1; int b=a2; //错误 b=a2; //错误 当看到a这样的形式时

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档