《C++必知必会》读书笔记4
2012-03-25 13:53 Rollen Holt 阅读(406) 评论(0) 编辑 收藏 举报int *f(); //一个返回值为int* 的函数
int (*f)(); //一个函数指针,指向一个返回类型为int的并且无参数的函数
const int N=12;
int *a[N]; //首先,提醒这段代码在c中不行。 这个是一个具有N个int * 元素的数组
int (*a)[N]; //一个指针,指向一个具有N个int元素的数组。
int(**p)[N]; //一个指针,指向一个指针,后者指向一个具有N哥int元素的数组
int *(*p)[N]; //一个指针,指向一个具有N个int * 元素的数组
int (**const p)()const =0; //一个常量指针,指向一个指向函数的指针。
int* (*p)(); //一个指针,指向一个返回类型为int* 的函数。
参数和返回值都会影响指针的类型:
char *(*p1)(int ,int);
char *(*p2)(short,short)=0;
p1=p2; //Error 类型不匹配
智能指针通过重载->和* (也可能还有->*)操作符,来模仿指针的行为。
函数对象类型通过重载()操作符,来创造类似于函数指针的东西。
在c++中,一个对象可以哟多个有效的地址,因此指针的比较不是关于地址的问题,而是关于对象的“同一性”的问题。
==============================================================================
本博客已经废弃,不在维护。新博客地址:http://wenchao.ren
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
==============================================================================