char* 和 char[]初始化的问题

 

  如下代码:

                1.char string[10] = {/0};

                2.char string[10];

                    string[0] = '/0';

    号称是这两种方式都可以,我使用的是第一种。

    第一种方法会使得字符串数组声明的时候每一位都被置空;

    第二种方法是用,将字符串第一位置空,根据c标准,空字符被认为是字符数组结束的标志,所以这样一来,字符数组就被初始化为空了,不过这种方式在我的机器上没有成功,表现为字符数组的后面几位中有随机的字符。

    再来说一下字符数组要初始化的原因。其实我觉得所有的指针和数组都应该初始化,因为刚分配给你的地址空间是动态分配的,其中有些位可能有你预料不到的内容,这会造成奇怪的错误。初始化了以后,连续的地址空间就都是你初始化过的内容了,就不会发生读取到意料外的数据的情况了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值