知识杂货铺

不卖切糕

View on GitHub
14 April 2019 00:00

《王道程序员求职宝典》笔记 - 第7章 指针与引用

by 宋强

复杂的函数指针用typedef简化

例如一个函数指针的形式为:

typedef bool (*cmpFunc)(const string &, const string &);        //cmpFunc就成为了一个函数指针类型

函数指针的两种使用形式

pf("hi", "bi");
(*pf)("hi", "bi");      //两种使用方式等价

函数的形参为函数指针

void useBigger(const string &, const string &, bool (const string &, const string &));
void useBigger(const string &, const string &, bool (*)(const string &, const string &));       //两种方式等价

返回函数指针

$P_{132} 待补充。$

函数指针作为参数

可以直接将函数作为参数传递给另一个接受函数指针的函数,会被自动转换成函数指针,这个转换可以在参数传递时自动实现,但不可以在返回值中实现,也就是说返回函数指针就只能返回函数指针,不可返回函数。

typedef int func(int *, int);   // func 是一个函数 ,而不是一个函数指针
void f1(func);                  // 正确,f1的形参是一个函数指针,func自动转换为函数指针
func f2(int);                   // 错误,func无法被自动转换
func * f3 ( int );              // 正确,f3 返回一个函数指针

引用

野指针 指向不可用内存的指针。

tags: c++ - 笔试 - 笔记