从具有C#和PHP等高级语言经验的人的角度来看,是否有人知道任何有任务或问题的好资源从事C语言中“新”的事情?我所能看到的只是比实践中的问题更“挑战”。
感谢。
答案 0 :(得分:12)
K& R. [Kernighan&里奇]
答案 1 :(得分:5)
你可以尝试布鲁斯·埃克尔的思考C.
完全免费,可从他的网站下载。
答案 2 :(得分:3)
正如其他人所说,请阅读K& R.
特别注意指针,结构,联合,位字段,typedef和C预处理器。指针和指针算术非常重要。
阅读C预处理器手册。
学习编写makefile。阅读您的make版本的手册。
答案 3 :(得分:1)
K& R已经过时了。
我更喜欢Stephen Prata的C Primer Plus 5th Ed ISBN:0-672-32696-5
涵盖C99。
答案 4 :(得分:0)
这应该是C bible。
答案 5 :(得分:0)
C中的问题解决和程序设计
通过
Jeri R. Hanly,Elliot B. Koffmon和Frank L. Friedman
答案 6 :(得分:0)
从1991年开始查看PJ Plauger的The Standard C Library。它替代了标准引用(C89,我相信),讨论了如何使用库函数,以及完整描述的完整C标准库的实现。源代码也包括在内。
是的,这本书还没有针对最新标准进行更新,但它至少解释了标准库中某些奇怪背后的一些基本原理仍然有很大的价值。顺便说一句,Plauger是标准委员会的成员。
Plauger写了很多关于C和早期Unix的经典书籍。追踪并阅读最古老的,以了解前C历史......
答案 7 :(得分:0)
考虑到你以前的(C#)编程经验,我猜你不需要一本教授如何编程的书,但是C的复杂性和微妙之处。我推荐以下内容:
答案 8 :(得分:0)
要解决已知答案的问题来源是Project Euler。
由于对所提出的问题存在明确的数学定位,因此它本身不是C特定的。然而,要诚实地尝试解决其中的大量问题,需要对结构,指针,标准库以及在C中运行良好的方式思考问题的能力不断提高。
另一个经常被忽视的资源是麻省理工学院一直将大部分课程放在网上。他们的EE/CS department也不例外。 班级Introduction to Algorithms可能是一个合适的选择。该教科书是由Cormen,Leiserson,Rivest和Stein撰写的“算法导论”第二版,其编写得非常好。我并没有详尽地搜索课程列表,所以我确信其中还有其他宝石。