`

函数指针与指针函数

    博客分类:
  • C++
FP 
阅读更多
假定一个指针指向一个int变量,它保存着这个int变量在内存中存储的地址,同样,函数也有地址,这是因为函数的机器语言实现

是由载入到内存的代码组成,指向函数的指针中保存着函数代码起始处的地址
void ToUpper(char *) //函数原型
void (*pf) (char *) //函数指针
void *ph (char *); //返回指针的函数(指针函数)
声明一个指向特定函数类型的指针,首先声明一个该类型的函数,然后用(*pf)形式的表达式代替函数名称,pf就成为可指向那种

类型的函数的指针了;有了函数指针之后,可以把适当类型的函数的地址赋给它,函数名可以用来表示函数的地址,如:
pf = ToUpper;
指针pf可以指向任何一个接受一个char *参数并且返回类型为void的函数

函数指针最常见的用法之一是作为函数的参数,函数指针代表着一类函数,如:
char *ch = "test function pointer";
void show(void (*pf)(char *), char *str);
show(ToUpper, ch);  //调用show,将ToUpper函数作为参数
void show(void (*pf)(char *), char *str){
(*fp)(str); //执行函数指针,并将str作为参数传入,或者fp(str)
puts(str);
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics