指针是 C 语言的精髓。——无名氏
指针是学业不精的程序员的大杀器。——Liam Huang

C 和 C++ 中的指针,是语言中相当犀利的工具。但是它也是一把双刃剑,用得不好,就是毁灭整个工程的大杀器。此篇老调重弹,讲一讲 C 和 C++ 中的指针。

此篇别名:可能是中文网络中关于 C 和 C++ 指针最好的文章。

阅读全文 »

很早以前就知道,编译器做的工作,首先就是读入源码,而后进行词法分析(有预处理的语言,还要先经过预处理器)。但是,一直没有对 C 语言的词法分析过程进行过深入了解。今天又拿起 Koenig 的《C 陷阱与缺陷》,才又读到相关的说明。

阅读全文 »

前作简单介绍了计算机硬件的发展历史和当前计算机硬件的基本结构。我们知道,作为软件开发者,我们几乎只需要知道计算机硬件由 CPU、内存和 I/O 设备组成就可以了,其他细节不一定要详细地了解。

本文我们将简单介绍计算机的层次化结构和操作系统;而后讨论 Linux 中的进程与线程。

阅读全文 »

本文又名:你对真正的 Times 字体一无所知

Times New Roman 在很长时间内是 Windows 平台上 M$ Word 的默认西文字体。所以,很多机构要求作者在文章中使用 Times New Roman 作为西文字体,于是这些作者就开始到处问:怎样在 LaTeX 中使用 Times New Roman 字体。

阅读全文 »

XGBoost 是陈天奇(怪)领衔开发的一套 Gradient Boost 算法实现,比如我会用到它做 LambdaMART 的实验。如果要给它一个评价,那应该是:好用、耐操。

不过,也有甜蜜的烦恼。XGBoost 在每轮迭代后,能够贴心地给出模型在数据集上的指标。比如我会关心 NDCG 指标。然而,这里列印出来的指标,会比事后用标准算法计算出来的值要高不少。

阅读全文 »