如果这是问这个问题的错误地方,请告诉我。
我是一个职业的Python程序员。我很想学习C。确实,我已经尝试了很多次,但是我总是灰心。在Python中,您编写了几行,程序就产生了奇迹。在C语言中,我似乎无法做任何有用的事情。
甚至连接到Internet似乎都非常复杂。
您对我学习C有什么建议?有没有好的网站?有什么很棒的项目吗?
谢谢
如果这是问这个问题的错误地方,请告诉我。
我是一个职业的Python程序员。我很想学习C。确实,我已经尝试了很多次,但是我总是灰心。在Python中,您编写了几行,程序就产生了奇迹。在C语言中,我似乎无法做任何有用的事情。
甚至连接到Internet似乎都非常复杂。
您对我学习C有什么建议?有没有好的网站?有什么很棒的项目吗?
谢谢
Answers:
不要气disc。
Python是一种高级编程语言。与C相比,它可以用很少的代码产生奇迹。不要一开始尝试模仿C语言中的Python结果-您会很快灰心。用C语言进行编程需要不同的思维方式和理解方式,因为当您与计算机进行更紧密的交互时。这是学习C的一个很好的起点:
如果您想学习C,请不要先连接互联网。您可以使用任何其他语言来执行此操作。在C语言中这不是最重要的。
相反,请看一下本C教程中的指针,数组,引用,结构。这将帮助您了解内存管理以及“使您与计算机更加接近”的许多功能。
如果您可以学习和理解该材料,请考虑将其扩展到可能的项目中。这些概念是任何真正的专业C编程的基础。
该指针教程看起来也很有帮助。
C_Tutorial
链接被打破......
这是非常复杂的连接到互联网!考虑一下:
您的计算机可能具有多种连接方式-WLAN,蓝牙,以太网等。每种连接都有自己的设置,需要进行设置。你是幸运的,有已经标准和驱动这些......使用这些可能是一个很大难度比它已经是现在。
IP地址可以是IPv4或IPv6,并且您需要能够同时处理这两个地址。
可能为系统配置了代理,也可能没有。
您必须支持FTP,HTTP或其他协议。
您可能需要使用拨号,因此,如果尚未连接,则必须指定带有密码和电话号码的电话簿。与WLAN用户名/密码同上。
您可能需要使用cookie。
系统可能会缓存一些数据,所以您是否要使用缓存?
这样的例子不胜枚举。
因此,使用Python轻松实现这些事实必然意味着其中许多隐藏在您的面前(或者很难设置),因此您将简单性换成了力量。C库则相反:它具有所需的全部功能(可以轻松地执行系统调用),但没有任何默认值(实际上,也没有任何用于连接到Internet的功能)。
不要将C视为乏味,而应将其视为强大的。但是无论如何,不要尝试通过它连接到互联网-这是一件相当困难的事情。相反,开始学习如何将库用于更多基本任务(例如文件I / O),了解指针和数组的实际工作方式,并在学习了所有这些内容后尝试处理大型项目。您也将更喜欢Python。:)
编辑:
我个人建议,如果您有空闲时间,请先学习C#。熟悉它之后,就开始学习有关unsafe
关键字以及如何使用指针以及如何在C#中进行封送处理的知识。与Python一样,您仍然可以使用非常大的库,但是您可以做很多可以在C中完成的事情。然后手动转换为调用系统API(例如InternetOpen),并学习如何让他们工作。您仍然具有很大的灵活性,但是您将对低级概念有很好的介绍。完成这些之后, 开始学习C-然后您会发现它简直是小菜一碟,您会看到(C?得到它吗?)高级语言和低级语言的优缺点,并且您将能够找到适合您需求的产品。
也就是说,我认为一个速成班用C为起点跳进可能是有用的海 C.