计算机二级基础知识:C_C 常见误区计算机二级考试

文章作者 100test 发表时间 2009:05:20 12:27:39
来源 100Test.Com百考试题网


  2009年下半年全国计算机等级考试你准备好了没?考计算机等级考试的朋友,2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库
  1. C 虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C 和C是兄弟关系。没有谁比谁先进的说法,更重要 的一点是C和C 各自的标准委员会是独立的,最新的C 标准是C 98,最新的C标准是C99.因此也没有先学C再说C 的说法,也不再(注意这 个"不再")有C 语法是C语法的超集的说法。
  2. C /CLI 和 C# 是微软的,它们与C和C 没有任何关系,虽然部分语法相似。但哪两种语言不相似呢?都是abc这26个字母。
  3. 不要使用TC/TC /BC/CB等古老的编译器来学习C/C ,因为它们太古老了,不支持新的C/C 标准。不要使用CBX/VC 6.0/VC2005等对C/C 标准支持不好的编译器,虽然这些编译器适合工作,但不适合学习,因为它们中的语法陷阱很多。记住唯一适合学习的编译器 是gcc/mingw.[antigloss注:Dev-C 使用的编译器就是gcc &. g ]
  4. 不要用""代替<.>.来包含系统头文件,虽然有些编译器允许你这样做,但它不符合C/C 标准。
  错误的示例:#include "stdio.h",#include "iostream".[antigloss注:习惯上,<.>. 用于包含标准头文件和系统头文件,"" 用于包含自定义头文件。标准似乎没有明确规定不准用 "" 包含标准头文件和系统头文件。使用 "" 包含标准头文件或者系统头文件只能说是一种不良风格。]
  5. 不要将main函数的返回类型定义为void,虽然有些编译器允许你这样做,但它不符合C/C 标准。不要将函数的int返回类型省略不写,在C 中 要求编译器至少给一个警告。错误的示例:void main() {},main() {} [antigloss注:C99和C 98都要求编译器对省略int至少发出一个警告]
  6. 不要把VC 中的 #include "stdafx.h" 贴出来,它是预编译头文件。如同上菜时不要把厨师也放到托盘中。
  7. [C ]不要#include <.iostream.h>.,不要#include <.string.h>.,因为它们已经被C 标准明确的废弃了,请改为 #include <.iostream>. 和 #include <.cstring>..规则就是:
  a. 如果这个头文件是旧C 特有的,那么去掉。h后缀,并放入std名字空间,比如 iostream.h 变为 iostream.
  b. 如果这个头文件是C也有的,那么去掉。h后缀,增加一个c前缀,比如 string.h变为 cstring;stdio.h 变为 cstdio, 等等。
  BTW:不要把string、cstring、string.h三个头文件搞混淆
  BTW:windows.h不是C/C 的标准文件,因此它的命名C/C 不管。
  8. 不要再写 char* p = "XXX" 这种语句,要写成 const char* p = "XXX",编译器之所以让前者通过编译是为了兼容以前 的大量的旧代码。[antigloss 注:这段话对 C 而言是正确的。但是,目前的 C99 标准似乎并没有定义 "XXX" 一定是常量。]
  BTW:const TYPE* p 和 TYPE const* p 是一样的,风格不同而已。
  BTW:C语言中也有const关键字。
  9. 不要在同一条语句中包含一个变量的多个 /——,因为它们的解析在C/C 标准中没有规定,完全取决于编译器的个人行为。
  10. C/C 是平台无关性语言,因此系统相关的 process/GUI 等不在标准 C/C 库中。比如 graphics.h 和 windows.h 等是由某个编译器提供的,而不是由C/C 提供的。
  11. C/C 只是语言,而且是平台无关性语言。论坛上有部分人甚至认为C就是dos,C 就是windows,那么请问linux是什么?
  12. [C ]面向对象曾经是设计C with class(C 的前身)的主要目的,但C 不是,C 是一个多典范语言。主要支持过程调用、基于对 象、面向对象、泛式编程这四种编程典范。当然还支持functional, generative,metaprogramming等典范。
  13. 语法学家不是文学家,所以当你学会了一门计算机语言时,你还需要学习数据机构和算法,还需要掌握工具和平台API的用法。
  14. C/C 是通用语言,因此语法很复杂,你应当裁减成适合你自己的语法集合,比如裁减成 better C 和 ADT.
  15. C/C 是通用语言,因此只含通用的库,你应该丰富自己需要的库,比如汽车工业协会有自己的C/C 函数/类/模板库。

  特别推荐:

  C/C 误区一:voidmain()

  C/C 误区二:fflush(stdin)

  C/C 误区三:强制转换malloc()的返回值

  C/C 误区四:charc=getchar().

  C/C 误区五:检查new的返回值



相关文章


计算机二级C 辅导:sleep与alarm计算机二级考试
计算机二级:我使用过的一些校验函数计算机二级考试
计算机二级基础知识:C_C 常见误区计算机二级考试
计算机二级C 惯用法之RAII计算机二级考试
在C 中如何使用调试器逐步跟踪程序计算机二级考试
计算机二级C_C 误区五:检查new的返回值计算机二级考试
计算机二级C_C 误区四:charc=getchar().计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛