Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个经验丰富的Java程序员应该从哪里开始掌握C语言?_Java_C - Fatal编程技术网

一个经验丰富的Java程序员应该从哪里开始掌握C语言?

一个经验丰富的Java程序员应该从哪里开始掌握C语言?,java,c,Java,C,以我的方式,我问你一个相反的问题。我在Java和编程方面有很多经验,但我想学习一些C语言(对于一些我对黑客感兴趣的项目)。是否有专门为具有CS背景的人量身定制的“快速肮脏”指南?我更喜欢免费的在线资源,但非常感谢您的建议。不久前,乔尔·斯波尔斯基(Joel Spolsky)宣称C语言编程对我来说至关重要。在那篇文章中,他引用了这本书,这本书是一直被接受的经典C语言书。然而,在用那本书教过C编程之后,对于普通学生来说,这有点拖拉 也就是说,如果你已经有Java方面的经验,那就不是你了 即便如此,这

以我的方式,我问你一个相反的问题。我在Java和编程方面有很多经验,但我想学习一些C语言(对于一些我对黑客感兴趣的项目)。是否有专门为具有CS背景的人量身定制的“快速肮脏”指南?我更喜欢免费的在线资源,但非常感谢您的建议。

不久前,乔尔·斯波尔斯基(Joel Spolsky)宣称C语言编程对我来说至关重要。在那篇文章中,他引用了这本书,这本书是一直被接受的经典C语言书。然而,在用那本书教过C编程之后,对于普通学生来说,这有点拖拉

也就是说,如果你已经有Java方面的经验,那就不是你了

即便如此,这本书还是值得一读。如果没有别的,我会去图书馆找

有点过时(特别是与ANSI C相比),但是,如果您正在寻找最快的语法复习,这并不可怕

给定一点基本语法(您将非常熟悉),您应该能够直接进入。这就是你所需要的大部分实际功能的所在。我认为您会发现“掌握”C所需的大部分材料实际上都在那些支持库中

为了完整性,如果您需要实际的编译器:

在我的日常工作中,我的开发环境分为Linux(Fedora14)和Windows7。在这两种情况下,我都在需要编写C代码时使用。虽然gcc在Fedora安装中是一个公认的标准,但在Windows端,您可能需要或,其中任何一个都可以为您提供gcc


如果我还在教C编程,我会向那些自学成才的高级学生推荐以上的一些组合。

对于一个经验丰富的开发人员来说,可能有一点基本的方面,但我发现K.N.King的“”非常好。这是对该语言和您需要的一些关键库的温和而全面的介绍。我读了这本书的第一版;提供的链接适用于第二版。

从安装开始,然后是。

虽然它首先是非常介绍性的,但请阅读并执行示例练习。它们在一段时间后变得非常具有挑战性,将使您很好地掌握C语言中不同于Java的指针、结构和其他方面。每个练习的解决方案都可以在网上找到


还可以查看斯坦福youtube课程CS107“编程范例”的讲座。所有的讲座、作业和其他课程材料都有。

你真的想要C吗?不是C++?不管怎么说,把这句话留在这里:“……对于临时学生”:我不认为C是适合临时学生、临时程序员或其他临时人员的语言。C不握你的手,你必须一直在球上。@mu,我不想说C比任何其他语言更能握你的手。我知道,我对C编程(即指针管理)与Java并发问题的印象是,至少C向您展示了它所持的刀,并说“不要弄乱指针,否则我会刺伤您。”Java倾向于让您自己设置定时炸弹,以便在数周、数月或数年后发现导致代码死锁的代码时,这是一个令人兴奋的惊喜!;-)“我几乎不叫java,或者死锁令人兴奋。”Matt,举例说明java、C++和其他各种迷人的语言如何能令人兴奋地达到足损伤的程度,请看一看如何在脚上开枪自杀的名录: