本文写给C或C++语言初学者。
常有初学者问“学C++语言前是否要先学C?”。我认为这是个伪问题。问题本身的答案并不是提问人真正想要的。 回答问题本身很简单:“当然不需要”。因为C++是一门独立的编程语言,它在语法、构建环境和运行环境上都无需依赖任何其它语言。至于说它是“C语言的超集”,那只是一种模糊的提法而已,更准确的说法应是:C++语言从设计之初就充分考虑了对C语言的兼容,结果它在很大程度上兼容了C语言。如此而已。 但对于那样提问的初学者来说,以上会是他们想要的答案吗?我觉得不是。至少问题没有这么简单。C++语言支持多种编程范式:面向过程、面向对象和范型程序设计。它所兼容C的部分,正是支持面向过程的主要部分。有C语言的基础,虽然有助于更快地掌握C++的面向过程部分,但由于C++语言本身也直接支持面向过程,因此我们完全可以从C++中直接学习面向过程程序设计,而无需先学C。至少理论上如此。
但话又要说回来。注意,这么提问的大多是初学者。一般讲解C++语言的教程,限于篇幅,面向过程部分无法与一本优秀的C语言教程相媲美。于是,真正的问题来了:直接从C++语言开始学习的初学者,他是否愿意像C语言初学者那样花大量的时间和精力,专门钻研面向过程程序设计呢?如果他不愿