索引

啃书

如果你愿意啃书,希望加深一点对C语言编程的理解(比如数组,指针,结构体...),推荐看《C Primer Plus》。

分享链接中包含以下三个版本:

中文扫描本:代码带格式化,但是不很清晰

中文电子本:代码无格式化,但是字体更清晰(可以配合样例代码文本凑合使用)

英文原版电子本:代码格式化,字体清晰

打包为自解压程序,是因为阿里云的分享限制真的太好用了。在用果子的同学可以考虑直接用压缩包管理软件从这里提取…… 应该是可以的(或者大不了wine跑)

附带了 All-Code ,书中的样例代码+英语注释


C Primer Plus 截图(英文原版)

vjScAe.png

上图中定义了数据结构二叉树,以及为使用该数据结构提供的部分函数。

vjSqhj.png

scanf 输入有效性验证样例

vjSO9s.png

字典序字符串比较库函数,strcmp(char *, char *) 的使用示例


在线网站

runoob.com 提供了不错的在线C入门教程,很适合初学者或者非初学者查阅简单的语法等等。

w3schools 的入门教程同样很不错,不过是英语

cppreference.com 如果 runoob.com 解决不了你的问题/不能满足你,你可能需要从这里查阅标准定义。这个网站不适合用来入门C语言。

顺便一提,在你发现你的程序优化后会改变行为时,可以了解一下as-if 原则——“允许进行任何不改变程序可观察行为的代码转换”。也就是说,你的代码可能含有未定义行为,或者你的编译器做了过于激进的优化,破坏了as-if原则。

通过现代编译器自带的静态检查,比如 clang 启用 -Wall -Wextra 可以检查出一些未定义行为。个人推荐 Code Blocks + clang编译器

1 comments

  • 1