每日一C(函数指针)

#include<iostream>
usingnamespacestd;
//函数指针指向函数的指针
//在这里声明了一个函数
intadd(intx,inty);
//以函数指针的方式声明一个函数(*add_p)和add是等价的add_p便是一个指向返回值为int参数也为两个int函数指针
//现在可以这样进行赋值add_p=&add也可以直接这样add_p=add它们是等价的
//现在可以这样调用add_p函数(*add_p)(x,y);也可以直接这样add_p(x,y)这种感觉就好像add_p和add是一模一样的.
//于是我试了一下这样(*add)(x,y)好吧这样也是可行的.是不是说add本生也是一个指针呢??
int(*add_p)(intx,inty);
//我声明了另外一个函数我做了这样一个操作add=mul.好吧,事实上这行代码编译都通不过.但是我可以这样add_p=mul.所以以指针的方式声明一个函数和普通的函数相比,具有更高的灵活性.
//它相当于一个变量可以指向不同的函数(特征要相同).而普通的函数更向一个const常量
intmul(intx,inty);
//这个函数需要三个参数两个操作数,加一个指针函数
intop(intx,inty,int(*)(intx,inty));
intmain()
{
add_p=add;
cout<<"Hello"<<endl;
cout<<add_p<<endl;
cout<<add<<endl;
cout<<add(4,5)<<endl;
cout<<add_p(3,10)<<endl;
add_p=mul;
cout<<add_p(1,2)<<endl;
cout<<op(1,5,mul)<<endl;
cout<<op(1,5,add)<<endl;
//op1(1);
return0;
}
intadd(intx,inty)
{
returnx+y;
}
intmul(intx,inty)
{
returnx*y;
}
intop(intx,inty,int(*p)(int,int))
{
returnp(x,y);
}

 

posted @ 2013-08-21 21:08  川上约  阅读(205)  评论(0)    收藏  举报