慎用为初始化变量

指针:0xCCCCCCCC
c++的DEBUG版会把未初始化的指针自动初始化为 0xCCCCCCCC,
Debug为了调试方便,也就是其Edit And Continue特性,为每个函数都多分配了64个字节。当用户在调试时在代码里增加少量变量的时候,编译器就可以分配那64个字节的空间过去,这样就不用重新编译程序来重新调试。
int:-858993460(十六进制OXCCCCCCCC)(二进制11001100110011001100110011001100)
a、当一个未初始化赋值的时候(至少是vc 下未初始化的内存)默认是0xCCCCCCCC;,内存就默认保存为-858993460 即二进制的11001100 11001100 11001100 11001100;
b、如果变量的数据类型由于你的运算的溢出了,在内存中系统就自动改为-858993460
unsigned,unsigned long:3435973836 (OXCCCCCCCC)(11001100110011001100110011001100)
short: -13108 (0XCCCC)(1100110011001100)
char: -52 '?' 其中 -52为(0XCC)(11001100)
double,long double: -9.2559631349317831e+061
bool:true
 
所以针对下面的代码(c++ prime 第四版 例 2.17
 std::string global_str;              //输出的是空字符串
int global_int;                            //输出  0
int main()
 { int local_int;                         //输出:-858993460(未初始化)
std::string local_str;                //输出 空字符串
// ... return 0; }
 
定义变量最好是要赋初值。。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值