一:容易混淆的const
关键字const并不能把变量变成常量!在一个符号前加上const限定符只是表示这个符号不能被赋值。也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序的内部(甚至外部)的方法来修改这个值。
const最有用之处就是用它来限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它。
列个const关键字并不真正表示常量的例子:
const int two = 2;
switch(i)
{
case 1: printf("case 1 /n");
case 2: printf("case 2 /n");
//error:integral constant expression expected
case 3: printf("case 3 /n");
default: ;
}
这并不是switch语句本身的过错,但这条switch语句展示了const其实并不是真正的常量。
二:尽量不要在你的代码中使用无符号类型,以免增加不必要的复杂性,尤其是不要仅仅因为无符号数不存在负值(如 年龄,国债)而用它来表示数量。只有在使用位段和二进制掩码时,才可以使用无符号数,应该在表达式中使用强 制类型转换,使操作数均为有符号数或无符号数。这样就不必由编译器来选择结果的类型。