关于函数指针的简单例子
函数指针简单格式如下:
i nt (*p)(int i, char c)
首先它是一个指针,其次它是指向一个函数地址的指针,再次这个函数的返回值为int数值.
#include
using namespace std;
int rep(int i, char c);
int repa(int (* p)(int i, char c));
int main(void)
{
int (*p)(int i, char c); //定义一个和rep相同格式的函数指针
//这里可以if如果定义了多个函数可以进行选择,这里简单说明
p=rep; //将p指针指向rep函数的地址rep
repa(p); //调用repa函数进行实际的赋值了操作
}
int repa(int (* p)(int i, char c)) //定义函数repa形参为rep格式相同的函数指针
{
cout<<'loop start!'<<ENDL;
(*p)(10,'a'); //p(10,'a');也可以实际就是调用rep做实际的处理
return 0;
}
int rep(int i, char c) //定义一个简单的函数
{
while(i-->0)
{
cout << i <<ENDL;
cout << c <<ENDL;
}
return 0;
}
函数指针简单格式如下:
i nt (*p)(int i, char c)
首先它是一个指针,其次它是指向一个函数地址的指针,再次这个函数的返回值为int数值.
#include
using namespace std;
int rep(int i, char c);
int repa(int (* p)(int i, char c));
int main(void)
{
int (*p)(int i, char c); //定义一个和rep相同格式的函数指针
//这里可以if如果定义了多个函数可以进行选择,这里简单说明
p=rep; //将p指针指向rep函数的地址rep
repa(p); //调用repa函数进行实际的赋值了操作
}
int repa(int (* p)(int i, char c)) //定义函数repa形参为rep格式相同的函数指针
{
cout<<'loop start!'<<ENDL;
(*p)(10,'a'); //p(10,'a');也可以实际就是调用rep做实际的处理
return 0;
}
int rep(int i, char c) //定义一个简单的函数
{
while(i-->0)
{
cout << i <<ENDL;
cout << c <<ENDL;
}
return 0;
}