我应该学习哪种语言作为通往C(及其衍生产品)的桥梁

时间:2020-03-05 18:49:10  来源:igfitidea点击:

我学习的第一门语言是PHP,但是最近我选择了Python。由于这些都是"高级"语言,因此我发现它们有点难掌握。我也尝试学习Objective-C,但我放弃了。

所以,我应该学习哪种语言在Python和C之间架起桥梁

解决方案

回答

目前尚不清楚为什么需要桥梁语言。为什么不直接开始使用C? C本身就是一种非常简单的语言。我认为对于C语言学习者来说,最困难的部分是指针以及与内存管理有关的所有其他内容。另外,C lang面向结构化编程,因此我们将需要学习如何在没有OOP优势的情况下实现数据结构和算法。实际上,问题很难解决,通常人们会从低级语言转向高级语言,我可以理解那些朝其他方向前进的人的挫败感。

回答

我感到我们很痛苦,我也首先学习了PHP,并且尝试学习C ++,这并不容易,而且我真的很挣扎,距我开始使用c ++已有2年了,但我能做的仍然是cout,cin和数学。

如果有人读过此书并想知道从哪里开始,请从低处开始。

回答

开始学习C的最佳地方是Kernighan和Ritchie撰写的" The C Programming Language"一书。

我们将认识到PHP带来的许多好处,并且我们会惊讶于PHP(以及Perl,Python等)为我们所做的工作。

哦,我们也需要C编译器,但我想我们知道这一点。

回答

学习任何一种语言都需要时间,我始终确保自己有一个可衡量的目标。我为自己设定了一个目标,然后开始学习语言以实现此目标,而不是尝试学习该语言和语法的每个细节。

C并不容易,如果我们不是汇编程序的根,那么可能很难理解指针。我首先学习了C ++,然后将C进行了复古适应,但是我从x86和68000汇编程序开始。

回答

不管我们信不信,Java在这里实际上可能是一个不错的选择。它强烈地基于C / C ++,因此,如果我们可以获得语法和强类型,则拾取C可能会更容易。好处是我们无需学习指针就可以学习底层语法(因为就像Python和PHP一样为我们管理内存)。但是,我们将学习类似的概念...引用(或者一般对象)。

而且,它是高度面向对象的,因此,如果我们还没有处理过OOP,可能很难理解....像其他人建议的那样使用C可能更好。

回答

Python与我们将获得的C差不多。实际上,在很多地方,它都是围绕C的非常薄的包装器。但是,C确实需要我们对计算机在较低级别上的工作情况有更多的了解。因此,我们可以从尝试使用汇编语言中受益。

LC-3是一种带有模拟机器的简单汇编语言。

另外,我们可以尝试使用像CINT这样的交互式C解释器进行播放。

最后,坚持到底并阅读K&R的书通常是最好的方法。

回答

忘了Java并不会使我们更接近C(我们已经证明了学习新语法没有问题)。

或者阅读K&R,或者低调:了解机器本身。 C中唯一棘手的部分是指针和内存管理(与指针密切相关,但与调用函数的方式有关)。学习一种(简单的,甚至是"伪装"的)汇编语言应该可以。

然后,开始阅读C提供的标准库。这将是我们日常的面包和黄油。

哦:另一个提示!如果我们确实想桥接,请尝试FORTH。它帮助我弄清楚了指针。另外,使用Visual Basic 6.0中的win32 api可以教给我们一些有关指针的知识;)

回答

C是自身的桥梁。

K&R是唯一一口气就能阅读​​并且几乎再也不会拾起的编程语言书...

回答

我的建议是获取一本与我们想做的事情相关的好书。我同意K&R被认为是C的"书",但是我发现Kay A. Robbins和Steven Robbins的" UNIX系统编程"更加实用和实用。本书充满了简洁的代码段,我们可以键入,编译和尝试每段几分钟。

http://books.google.com/books?id=tdsZHyH9bQEC&printsec=frontcover上有一个预览(超链接无效)。

回答

我认为C ++是通向C语言的良好"桥梁"。我首先在大学学习C ++,并且由于它基于C,我们将学到很多相同的概念,也许最值得注意的是指针,但还有面向对象的设计。 OO可以应用于各种现代语言,因此值得学习。

学习C ++之后,我发现根据需要了解C ++和C之间的区别并不难(例如,在不支持C ++的设备上工作时)。

回答

我通常都同意其他大多数情况。并不是一种好的垫脚石。

但是,了解学习C的困难是很有用的,这可能有助于我们了解使C变得困难的原因。

我想说,对于来自PHP的人来说,用C证明很难:

  • 指针和内存管理我想,这几乎就是我们学习C的原因,因此实际上并没有解决任何问题。学习较低级别的汇编类型语言可能会使此操作更容易,但是C可能是实现此目的的桥梁,而不是相反。
  • 缺乏内置的数据结构,PHP和co都具有本机String类型,并且内置了诸如哈希表之类的有用功能,而在C中则不是这种情况。在C中,String只是字符数组,这意味着我们需要做更多的工作,或者认真看一下添加了我们惯用功能的库。
  • 缺少内置库如今,PHP之类的语言几乎总是与用于数据库连接,图像处理和其他内容的库一起提供。在C语言中,只有一个非常瘦的标准库(主要围绕文件读取,写入和基本字符串操作),情况并非如此。几乎总是有不错的选择可以满足这些需求,但是我们需要自己包括它们。
  • 适用于高级任务如果我们尝试在C中实现与PHP中相同的应用程序类型,则会发现它运行很慢。例如,生成网页并不是普通C真正适合的,因此,如果我们尝试这样做,将会发现它运行很慢。
  • 预处理程序和编译如今,大多数语言都没有预处理程序,如果我们来自PHP,则编译周期似乎很痛苦。两者都是某种程度上的性能折衷-脚本语言根据开发人员的效率进行折衷,而C则更喜欢性能。

我敢肯定,现在我还没有想到更多的东西。这个故事的寓意是,试图了解我们在C语言中遇到的困难可以继续前进。如果我们尝试使用它生成网页,请尝试做一些较低级别的操作。如果缺少哈希表,请尝试编写自己的哈希表或者查找库。如果我们在指针上苦苦挣扎,请坚持:)

回答

尝试学习我们喜欢的语言,尝试不同的方法和基础知识。

回答

语言很容易学习(尤其是像C一样的语言)...难的部分是学习语言的库和/或者编码风格。例如,我非常了解C ++,但是我看到的大多数C / C ++代码都使我感到困惑,因为命名约定与我每天使用的约定有很大不同。

无论如何,我想我要说的是不必太担心语法,而要专注于所述语言的库。这不是特定于C的语言,我们可以对c#,vb.net,java以及几乎所有其他语言说同样的话。

回答

帕斯卡!语法足够接近,仍然需要我们执行一些内存管理,但对初学者而言并不那么困难。