- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指针(二)
-* 5.5 指向函数的指针变量 与数组名实际上是数组第一个元素(下标为0)的内存地址相似,函数名实际上是实现函数功能的代码在内存中的起始地址 C不仅允许一个指针变量存放某数据的内存地址,或某数组的存储首地址,也允许存放函数的存储首地址,或称函数的执行入口地址 可用一个指针变量指向该函数。称其为函数指针变量或函数指针 指向函数的指针变量——函数指针 -* 5.5 指向函数的指针变量 或 函数指针变量说明语句 例23 函数指针变量说明语句示例 int (*pf)( ); float (*max)(float x,float y); 类型标识符 (*函数指针变量名)( ); 类型标识符 (*函数指针变量名)(形式参数及类型说明表); 指向float类型二元函数的指针 指针变量名为max -* 5.5 指向函数的指针变量 由于函数名可以作为参数传递,使得可以对若干个算法相似的函数进行统一的调用。 例24 利用统一的函数调用,输出三个不同算术运算的结果。 /* program tables.cpp */ #include iostream.h int add(int x,int y) { return (x+y); } int mul(int x,int y) { return (x*y); } int fun(int x,int y) { return ((x+y)*(x-y)); } 函数指针的使用示例 -* int oper(int x,int y,int (*func)(int,int)) { return ((*func)(x,y)); } void main() { int i=75,j=38; couti+”j“=“oper(i,j,add)endl; couti”*”j”=“oper(i,j,mul)endl; cout(“i”+”j“)*(“i“-”j“)=“oper(i,j,fun)endl; } ? 5.5 指向函数的指针变量 函数指针的使用示例 75+38=113 75*38=2850 (75+38)*(75-38)=4181 -* -* 第11讲 指针(二)王海涛 -* 第11讲 指针(二) 5.3 指向数组的指针变量 5.4 指向字符串的指针变量 5.5 指向函数的指针变量 -* 5.3 指向数组的指针变量 在C中,数组与指针具有非常密切的关系。它们几乎可以互换 数组名其实是一个指针常量,即地址常量 对数组的处理实际上均转换成相应的指针及地址的运算 访问数组中的某数组元素,既可使用下标表示法,也可使用指针表示法 下标表示法的优点:程序清晰 指针表示法的优点:节省编译时间 数组与指针的关系 -* 5.3 指向数组的指针变量 设有变量说明 int i,a[10]; int *pa; 一维数组a的首地址 ? a或a[0] 数组元素a[0]的地址a[0] ? a或a+0 数组元素a[0]的内容 ? *a或*(a+0) 数组元素a[1]的地址a[1] ? a+1 数组元素a[1]的内容 ? *(a+1) 数组元素a[i]的地址a[i] ? a+i 数组元素a[i]的内容 ? *(a+i) 指向一维数组的指针 a[9] a[8] a[7] a[6] a[5] a[4] a[3] a[2] a[1] a[0] a a的首地址 -* 5.3 指向数组的指针变量 pa=a; 或 pa=a[0]; 一维数组a的首地址 ? pa 数组元素a[0]的地址a[0] ? pa或pa+0 数组元素a[0]的内容 ? *pa或*(pa+0) 数组元素a[1]的地址a[1] ? pa+1 数组元素a[1]的内容 ? *(pa+1) 数组元素a[i]的地址a[i] ? pa+i 数组元素a[i]的内容 ? *(pa+i) a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a a的首地址 pa 指向一维数组的指针 -* 5.3 指向数组的指针变量 几个要点 pa是指针变量,a是指针常量,能写pa++,但不能写a++ 数组名a仅能表示数组a的首地址,而指针变量pa的地址可以自由选择与改变 下标为i的数组元素可写作a[i]或*(a+i)或pa[i]或*(pa+i) a+i或pa+i的地址计算需要用到扩大因子,即基类型所占存储单元字节数 指向一维数组的指针 -* 5.3 指向数组的指针变量 示例 设说明 int i; int a[]={1,2,3,4,5,6}; int *pa=a; 且i的当前值?[0,5]。今欲引用序号为i的
文档评论(0)