第一章:C穿越时空的迷雾

一:容易混淆的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其实并不是真正的常量。


二:尽量不要在你的代码中使用无符号类型,以免增加不必要的复杂性,尤其是不要仅仅因为无符号数不存在负值(如 年龄,国债)而用它来表示数量。只有在使用位段和二进制掩码时,才可以使用无符号数,应该在表达式中使用强 制类型转换,使操作数均为有符号数或无符号数。这样就不必由编译器来选择结果的类型。


三:当执行算术运算时:操作数的类型如果不同,就会发生转换,数据类型一般朝着浮点精度更高,长度更长的方向转 变。整型数如果转换为signed 不会丢失信息,就转换为signed,否则转换为unsigned。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值