C语言的难点和查阅点

C语言是一门简单的语言。一些学习了C的大一学生很不服气这一说法。C之父Ritchie说过:Despite some aspects mysterious to the beginner and occasionally even to the adept, C remainsa simple and small language, translatable with simple and small compilers.

当我们说C简单时,你不要:

  • 把开发系统底层程序或嵌入式程序作为C语言的一部分。这是应用问题,如同我说铅笔简单而不要强求用它写出《红楼梦》。
  • 把数据结构和算法的学习作为C语言的一部分。这是超越语言的东西,对于任何语言,它们都是绝对重要的。
  • 把不需要记忆的东西、把那些变态的老师喜欢考的东西作为C语言难的依据。这就是Ritchie所说的mysterious,咱们不做语言律师或孔乙己。只有大型软件公司,才养得起少数的语言律师。

C语言的难点:

  1. 标准问题。例如C11中我们可以写中文注释,这对于培养初学者养成写注释的习惯非常重要,但是很多编译器不支持时怎么办?现在看一些C教程,都不知道它们所说的“一定、必须”是不是必须遵守。
  2. 优先级和表达式求值规则。
  3. 循环。小难点。
  4. 内存管理与指针。应该作为有趣点而不是难点。
  5. 结构化编程与函数、结构体
  6. 应用:这是无底洞...算法和数据结构、库函数编程(文件处理、GUI、多线程...)、图灵机和系统编程...事实上这些东西的大多数内容,与语言无关。即使是系统编程,很多人说操作系统都是C编写的所以C如何重要,如同说我们使用的键盘都是qwer的所以该键盘的设计是如何如何科学一样,极其错误的、肤浅的观点。“真正的程序员用C/C++”,拜托,真正的程序员用任何合适的语言2B程序员才把C/C++看作他家的祖坟


C语言的查阅点:(yqj2065觉得不应该作为知识点出现在考试中的部分)

  1. 格式化输入输出。知道%d、%c、%s、%p就行了。其他查一下资料。老谭先生的书在这个问题上罗罗嗦嗦,搞得似乎这是C语言的重大核心技术一样。考试出现这种题目,学生可以填写的答案:变态。“如果C语言要考得很难的话,根本不用考什么指针,只要专考输出格式,我想百分之九十九的学生都不及格。”的确如此。这是在实际软件开发中较少使用的,但却是C语言的初学者最常用的东西。
  2. 优先级。有人说:你需要知道乘法的优先级比加法的高,其他情况全部加括号。虽然有点夸张,但值得借鉴。当然,使用括号的多少反映你的编程熟练程度,在你编程实践中你要不断地减少使用括号。但是我不认为应该作为重要的考点。
  3. 库函数的查阅。这是一种能力,超越了闭卷考试的范围。
  4. 预处理。了解文本替换的作用和意义即可。条件编译部分和更多细节,不宜作为初学者考试的范围。

你可能感兴趣的:(C语言的难点和查阅点)