> 原文出处:http://segmentfault.com/a/1190000004200708
> 作者:garfileo
面向对象编程,面向设计模式编程(亦即设计模式),面向接口编程,面向模板编程(亦即泛型编程),面向函数编程(亦即函数式编程),面向多核时代的并行编程,面向大数据的机器学习编程……这么多年,大家要面向的东西已经够多了,然而我看到的现象是,很多编程语言让大家面向 xxx 的同时在竭力回避指针。我可不想面向这么多东西,所以我只好加入指针的黑暗势力。我要不自量力的来写一篇《面向指针编程》作为投名状,借以表示我与软件世界的光明势力的彻底决裂。
这个世界上,提供指针的编程语言很少,这样的语言有汇编语言、C/C++ 以及 Pascal 等。Pascal 我没学过。汇编语言过于黑暗,我现在功力还不足以驾驭它。C++,我觉得它简直是黑暗势力中的败类——它试图挣脱指针,走向光明,结果却出了一堆幺蛾子。所以我还是俗套的选 C 语言来阐述指针的黑暗力量。
阅读本文之前,请读三遍 Unix 无名师说的话:当尊者 Ritchie 发明 C 时,他将程序员放到缓冲溢出、堆损坏和烂指针 bug 的地狱中惩罚。然后自我安慰一下,如果地狱未能使我屈服,那么我会比地狱更黑暗更强大。