在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
函数名与函数指针 #include <iostream> using std::cout; using std::endl; void MyFun(int x); //此处也可以声明为:void Myfun(int); int main() { MyFun(10); //这里是调用MyFun(int x);函数 system("pause"); return 0; } void MyFun(int x) { cout << "x: " << x << endl; }
申明FunP变量的方法:void (*FunP)(int) ; 也可写成void (*FunP)(int x); 整个函数指针变量的申明格式如同函数MyFun的申明处一样,只不过,把MyFun改成(*FunP)而已,这样就有了一个能指向MyFun函数的指针FunP了。(当然,这个FunP指针变量也可以指向所有其它具有相同参数及返回值的函数了。) 有了FunP指针变量后,我们就可以对它赋值指向MyFun,然后通过FunP来调用MyFun函数了。 如何通过FunP指针变量来调用MyFun函数的: #include <iostream> using std::cout; using std::endl; void MyFun(int x); //此处也可以声明为:void Myfun(int); void (*FunP)(int); //声明一个用以指向同样参数,返回值函数的指针变量 int main() { MyFun(10); //这里是调用MyFun(int x);函数 FunP = &MyFun; //将MyFun函数的地址赋给FunP变量 (*FunP)(20); //这是通过函数指针变量FunP来调用MyFun函数的 system("pause"); return 0; } void MyFun(int x) //MyFun函数的定义 { cout << "x: " << x << endl; } #include <iostream> using std::cout; using std::endl; void MyFun(int x); //此处也可以声明为:void Myfun(int); void (*FunP)(int); //申明一个用以指向同样参数,返回值函数的指针变量 int main() { MyFun(10); //这里是调用MyFun(int x);函数 FunP = MyFun; //将MyFun函数的地址赋给FunP变量 (*FunP)(20); //这是通过函数指针变量FunP来调用MyFun函数的 system("pause"); return 0; } void MyFun(int x) //MyFun函数的定义 { cout << "x: " << x << endl; }
#include <iostream> using std::cout; using std::endl; void MyFun(int x); //此处也可以声明为:void Myfun(int); void (*FunP)(int); //申明一个用以指向同样参数,返回值函数的指针变量 int main() { MyFun(10); //这里是调用MyFun(int x);函数 FunP = &MyFun; //将MyFun函数的地址赋给FunP变量 FunP(20); //这里是通过函数指针变量来调用MyFun函数的 system("pause"); return 0; } void MyFun(int x) //MyFun函数的定义 { cout << "x: " << x << endl; }
#include <iostream> using std::cout; using std::endl; void MyFun(int x); //此处也可以声明为:void Myfun(int); void (*FunP)(int); //申明一个用以指向同样参数,返回值函数的指针变量 int main() { MyFun(10); //这里是调用MyFun(int x);函数 FunP = MyFun; //将MyFun函数的地址赋给FunP变量 (*FunP)(20); //这里是通过函数指针变量来调用MyFun函数的 system("pause"); return 0; } void MyFun(int x) //MyFun函数的定义 { cout << "x: " << x << endl; }
#include <iostream> using std::cout; using std::endl; void MyFun(int x); //此处也可以声明为:void Myfun(int); void (*FunP)(int); //申明一个用以指向同样参数,返回值函数的指针变量 int main() { (*MyFun)(10); //看,函数名MyFun也可以有这样的调用格式 FunP = MyFun; //将MyFun函数的地址赋给FunP变量 (*FunP)(20); //这里是通过函数指针变量来调用MyFun函数的 system("pause"); return 0; } void MyFun(int x) //MyFun函数的定义 { cout << "x: " << x << endl; }
#include <iostream> using std::cout; using std::endl; void MyFun(int x); //此处也可以声明为:void Myfun(int); typedef void (*FunType)(int); //这样只是定义一个指针类型 FunType FunP; //然后用FunType类型来声明全局Funp变量 int main() { //FunType Funp; //函数指针变量当然也可以是局部的,那就请在这里声明 (*MyFun)(10); //看,函数名MyFun也可以有这样的调用格式 FunP = &MyFun; //将MyFun函数的地址赋给FunP变量 (*FunP)(20); //这里是通过函数指针变量来调用MyFun函数的 system("pause"); return 0; } void MyFun(int x) //MyFun函数的定义 { cout << "x: " << x << endl; } 看黑体部分: #include <iostream> using std::cout; using std::endl; void MyFun1(int x); void MyFun2(int x); void MyFun3(int x); typedef void(*FunType)(int); //2.定义一个函数指针FunType, 与1.函数类型一直 void CallMyFun(FunType fp, int x); int main() { CallMyFun(MyFun1, 10); //5.通过CallMyFun函数分别调用三个不同的函数 CallMyFun(MyFun2, 20); CallMyFun(MyFun3, 30); system("pause"); return 0; } void CallMyFun(FunType fp, int x) //3.参数fp的类型是Funtype { fp(x); //4.通过fp的指针执行传递进来的函数,注意fp所知的函数时有一个参数的 } void MyFun1(int x) { cout << "MyFun1: " << x << endl; } void MyFun2(int x) { cout << "MyFun1: " << x << endl; } void MyFun3(int x) { cout << "MyFun1: " << x << endl; } 分析见注释。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论