指向函数的指针 和 返回指针的函数
2014-08-25 12:27
148 查看
</pre><p>1 函数指针</p><p><pre name="code" class="cpp">char (*pFun)(int); //定义一个指向函数的函数指针pFun, 指向的函数参数是int型 返回值是char型 char g1Fun(int a) //定义了一个函数,函数的函数名实际上就是一个指针函数名指向该函数的代码在内存中的首地址。 { cout<<a<<endl; return '0'; } void main() { pFun=g1Fun; //函数指针pFun指向g1Fun函数 (*pFun)(2); //执行指向的函数 }
2 返回指针的函数
char *get(void) { char *p="this is sring"; return p; //指向静态存储区有效 } int *get2(void) { int i=50; int *p=&i; return p; //函数调用完,i释放,无效 } int *get3(void) { int i=40; return &i;//函数调用完,i释放,无效 } int *get4(void) { static int i=30; return &i;//指向静态存储区有效 } char *get5() { char ch[10]; strcpy(ch,"hello"); return ch;//函数调用完,ch释放,无效 } char *get6() { char *str; str=(char *)malloc(10); strcpy(str,"world"); return str;//分配在堆中,只有free才能释放,有效 } void main() { char *strRev=NULL; int * pint=NULL; strRev=get(); puts(strRev); pint=get2(); cout<<*pint<<endl; pint=get3(); cout<<*pint<<endl; pint=get4(); cout<<*pint<<endl; strRev=get5(); puts(strRev); strRev=get6(); puts(strRev); }3 函数指针应用
int max(int x,int y) { return x>y?x:y; } int main() { int max(int,int); int (*p)(int,int)=max; int a,b,c,d; printf("input\n"); scanf("%d%d%d",&a,&b,&c); d=(*p)((*p)(a,b),c); cout<<d<<endl; return 0; }
相关文章推荐
- 【原】函数返回指针,指向的内存谁来释放?
- 返回指向局部变量指针的函数 与 返回局部变量引用的函数
- C语言中返回指针的函数和指向函数的指针
- 切勿使用:指向局部变量的指针作为函数的返回指针!
- 我也要学C语言-第十六章:返回指针值的函数与指向函数的指针以及逻辑与算法分离
- 学习笔记之14-返回指针的函数与指向函数的指针
- 【C语言】14-返回指针的函数与指向函数的指针
- VC:返回指向函数的指针
- C++中返回指向函数的指针学习
- 深入理解C语言中的指向函数的指针和返回指针的函数!
- 函数指针、函数返回指针、const指针、指向const指针,指向const的const指针。
- 返回指向函数的指针
- 【C语言】14-返回指针的函数与指向函数的指针
- 函数返回指向函数的指针
- 【C语言】14-返回指针的函数与指向函数的指针
- 【C语言】14-返回指针的函数与指向函数的指针
- C++中返回指向函数的指针
- 【C语言】14-返回指针的函数与指向函数的指针
- 指向函数的指针与返回指针值的函数
- 指向函数的指针和返回指针的函数