我应该学什么语言作为C语言(及其衍生语言)的桥梁

4 投票
14 回答
919 浏览
提问于 2025-04-11 09:17

我最开始学的语言是PHP,但最近我又学了Python。因为这些都是“高级”语言,所以我觉得学起来有点难。我也尝试过学Objective-C,但最后放弃了。

那么,我应该学什么语言,才能更好地从Python过渡到C语言呢?

14 个回答

5

我大致同意其他人的看法——其实没有一种特别好的入门语言。

不过,了解学习C语言时遇到的困难是有帮助的,这样你就能明白自己为什么会觉得难。

我认为,对于从PHP转过来的人来说,C语言的难点主要有:

  • 指针和内存管理
    我想这也是你学习C语言的主要原因,所以这是无法避免的。学习一些底层的汇编语言可能会让这部分变得简单一些,但C语言其实是通往这些语言的桥梁,而不是反过来。
  • 缺乏内置数据结构
    PHP等语言都有原生的字符串类型和一些很实用的东西,比如哈希表,而C语言就没有。在C语言中,字符串只是字符数组,这意味着你需要做更多的工作,或者认真考虑使用一些库来添加你习惯的功能。
  • 缺乏内置库
    像PHP这样的语言现在几乎总是自带很多库,用于数据库连接、图像处理等各种功能。而在C语言中,除了一个很薄的标准库(主要是处理文件读写和基本字符串操作),几乎没有其他库。虽然总是有不错的选择来满足这些需求,但你需要自己去引入它们。
  • 不适合高层次的任务
    如果你试图用C语言实现和PHP一样的应用程序,你会发现进展非常缓慢。例如,生成网页并不是C语言的强项,所以如果你想用C来做这件事,会觉得很慢。
  • 预处理器和编译
    现在大多数语言都没有预处理器,如果你是从PHP过来的,编译过程会让你觉得很痛苦。这两者在某种程度上都是性能的权衡——脚本语言在开发效率上做了妥协,而C语言则更注重性能。

我相信还有其他一些我现在想不起来的。总的来说,试着理解你在C语言中遇到的困难可能会帮助你更好地前进。如果你想用它生成网页,可以尝试做一些更底层的事情。如果你缺少哈希表,可以试着自己写一个,或者找一个库。如果你在指针方面挣扎,那就坚持下去吧 :)

7

学习C语言的最佳起点是Kernighan和Ritchie写的《C程序设计语言》这本书。

你会发现很多东西和PHP很像,而且你会惊讶于PHP(还有Perl、Python等)为你做了多少事情。

哦,对了,你还需要一个C语言编译器,不过我想你应该早就知道了。

15

不太明白你为什么需要一个桥接语言。为什么不直接开始学习C语言呢?C语言本身其实很简单。我觉得C语言学习者最难的部分是指针和与内存管理相关的内容。另外,C语言是面向结构化编程的,所以你需要学习如何在没有面向对象编程(OOP)这种方便特性的情况下实现数据结构和算法。其实,你的问题有点复杂,通常人们是从低级语言转向高级语言,我能理解那些反方向学习的人会感到沮丧。

撰写回答