为数组整体赋初始值

    //非全局情况
    char p[10]={'1'};
    int pp[10]={1};
    char d[10];
    memset(d,'1',sizeof(d));

PS:全局情况下int默认初始值为0,double默认初始值为0

     非全局情况int默认都是垃圾值

使用以上赋值方法得出的结果是:

1
1 0 0 0 0 0 0 0 0 0 
1 1 1 1 1 1 1 1 1 1 

曾经的我!一直天真的以为使用第一、第二种初始化方法时,会给数组中的每个元素都赋上初始值!然而!并不是!

C/C++不支持数组的整体赋值,可以在声明数组时整体初始化,无论数组有多大,全部初始化为0的操作很简单,如int a[100]={0};可将a的100个元素全部置为0,但若要将其全部赋为其他值,则不行,即上述的第二种赋值方法。

若要整体赋其他初始值,直接用memset、fill、for循环即可,只要别用第一种办法就行(手动狗头!

除了for循环的手动赋值,memset和fill函数也是两种不错的选择;

但是它俩有点细微的差别:

  • memset函数(一般只能用来填充char型数组)

    • 按照字节填充某字符
    • 在头文件<cstring>里面
    • 使用方法memset(数组名,要填充的内容,单元大小)
  • fill函数(可以赋值任何)

    • 按照单元赋值,将一个区间的元素都赋同一个值
    • 在头文件<algorithm>里面
    • 使用方法:fill(起始地址,结束地址, 要填入的内容);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值