文章目录

茶屋Teahouse

Every time you lie my place

标签: 头脑风暴 (1)

[头脑风暴]指针与函数还能擦出怎样的火花 有更新!

Q 有一个名为selectMode的函数,它本身有一个char类型的参数,返回值是一个函数指针。这个函数指针也有两个参数,并且返回值类型为整形 int *fp(int, int) selectMode(char); 想法很好,但是编译器却一点都看不懂,因为这应该是两个语句,被糅杂到一行里,所以它就直接报错了 那我们一步一步来解析 首先,这个函数名为selectMode,所以我们要以selectMode为主体去写 第二,selectMode函数有一个char类型的参数 selectMode(char); 第三,函数的返回值是一个函数指针 *selectMode(char); 第四,函数指针也有两个int类型参数 (*selectMode(char))(int, int); 最后,返回值为int类型 int (*selectMode(char))(int, int); 这实际上就是函数指针与指针函数的结合体,在指针函数里套用函数指针 带入到实际应用中,通过selectMode的形参确定返回的是什么指针 int (*selectMode(char op))(int, int) { ....