摘要: C/C++中函数指针是一种指针类型,其指向一个函数的首地址。既然是指针类型,使用时就应该像int,int*等类型一样申明定义。如语句 int (*fp) (int, int); 就是声明一个函数指针变量fp,其指向一个输入为两个int型参数,输出为int型的函数。对函数指针变量赋值可以有两种方式。如有一个函数 int Add(int a, int b){return a+b;}。则可以定义:1) fp=&Add;2) fp=Add;前一种方式是显式赋值,后一种是隐式赋值。两者是等同的。同样在使用函数指针变量时也有两种方式:1)(*fp)(2,3);2)fp(2,3);两者均相当于与执行 阅读全文
posted @ 2012-09-02 23:40 ldeng 阅读(1889) 评论(8) 推荐(0) 编辑
摘要: 我们在最初学习C++语言时就接触到"cout<<endl;"这样的语句。我们都知道endl表示换行的意思。我一直习惯这样使用,却并不是清楚其内部实现是怎么样的。今天看《C++ Standard Library, Sec. 13.6.1》,才真正弄明白。首先,endl是一个操作符(Manipulators),但我们必须知道endl是一个什么类型的变量。endl是跟在”<<“运算符后面,故endl应该是一个参数。其实endl是一个函数名,它是一个"<<"运算符重载函数中的参数,参数类型为函数指针。下面我们看下内部函数实现。 阅读全文
posted @ 2012-09-02 21:57 ldeng 阅读(9769) 评论(4) 推荐(3) 编辑