1. C语言有32个关键字。不常用的有:register声明寄存器变量、volatile说明变量在    程序执行中可被隐含地改变、extern声明变量是在其他文件中声明、sizeof计算对    象所占内存空间大小。

2. 什么是“定义”?

   所谓定义,就是(编译器)创建一个对象,为这个对象分配一块内存并给它取一个    名字,这个名字就是我们经常所说的变量名或对象名。

   什么是“声明”?

   有两重含义。第1重含义;告诉编译器,这个名字已经分配到一块内存上了,下面的    代码用到变量或对象是在别的地方定义的。声明可以多次出现。第2重含义:告诉编    译器,这个名字已经被预定了,别的地方再也不能用它来作为变量名或对象名。

   定义和变量的区别:定义创建了对象并为这个对象分配了内存,声明没有分配内存。

3. register变量必须是一个单个的值,并且其长度应小于或等于整型的长度,而且register变量可能不存放在内存中,所以不能用取址运算符&来获取变量的地址。

4. 含义标识命名规则,变量命名使用名词性词组,函数命名使用动词性词组。

 变量含义标识符构成:目标词 + 动词(过去分词)+ [状语] + [目的地]:                            如DataGotFromSD

 函数含义标识符构成:动词(一般现在时)+ 目标词 + [状语] + [目的地]

                     如GetDataFromSD

5. 不同类型数据之间的运算要注意精度扩展问题,一般低精度数据将向高精度数据扩展。

6. sizeof在计算变量所占空间大小时,括号可以省略,而计算类型大小时不能省略。如int i=0; sizeof i;正确  sizeof int;错误

7. 在计算机系统中,数值一律用补码来表示(存储),可以将符号位和其它位统一处理。特别注意i为unsigned int类型时,i(i等于0)减1.

8. 在编译器里FALSE被定义为0,但TRUE在Visual C++中定义为1,在Visual Basic中定义为-1.所以一般写法为:bool bTestFlag = FALSE; if(bTestFlag); if(!bTestFlag);

9. 指针变量与“零值”进行比较,建议写法:int *p = NULL; if(NULL == p);  if(NULL != p);

10. 在真正需要空语句时写成:NULL;

11. 使用if语句时,先处理正常情况,再处理异常情况。把执行概论更大的代码放在前面,避免进行多次无谓的比较。

12. case关键字后面只能是整型或字符型的常量或常量表达式(字符型数据在内存中也是按照整型ASCII码存储的)。

13. case语句的排列顺序:a.按字母或数字顺序排列各条case语句。b.把正常情况放在前面,而把异常情况放在后面。3.按执行频率排列case语句。

14. 循环语句的注意点:a.在多重循环中,如果有可能,应将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。b.建议for语句的循环控制变量的取值采用“半开半闭区间”写法。 c.不能在for循环体内修改循环变量,防止循环失控。d. 循环要尽可能短,要使代码清晰,一目了然。 e. 把循环嵌套控制在3层以内。

15. 如果函数无参数,那么应声明其参数为void。在C语言中,可以给无参数的函数传递任意类型的参数,但在C++编译器中同样的代码则会出错。

16. return 语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结束时被自动销毁了。

17. 空结构体,在C语言中大小为0,在C++中大小为1.