永发信息网

用memset和for循环给数组初始化有什么不同? C++

答案:5  悬赏:60  手机版
解决时间 2021-03-26 06:08
用memset和for循环给数组初始化有什么不同? C++
最佳答案
1、效果是一样的,memset更常用。memset的效率比for循环要高出很多。
2、使用memset函数与将函数代码写在自己的程序里是不一样的,C标准库中的memset对Cache的利用做了优化,具体的在《C专家编程》151页有解释,这里给出测试:

    #include   
    #define MAXSIZE 100000  
      
    int main()  
    {  
        char arr[MAXSIZE];  
        for(int i=0;i<10000;i++)  
        {  
            memset(arr,'0',sizeof(arr));  
    //        for(int j=0;j    //            arr[0] = '0';  
        }  
        return 0;  
    }
程序里的注释部分与memset行分别使用,结果是使用memset的程序运行时间大约为0.1s,而用for循环的程序要3s多。综上:memset()可以用在字符数组的初始化以及类似于memset(arr,0,n*sizeof(int));的情况,效率比手动赋值要高的多。

全部回答
memset使用的时候要小心点,别把size写错了
用memset可以节省CPU的计算时间!for循除了计算时间不说,至少要存取十次,而MEMSET只存取一次,而且也好理解!
memset是系统函数,你如果用包含了标准C中的头文件,就是由C完成了包装。
memset应该会更有效率一些,而且用起来方便。
效果是一样的,memset更常用
你是愿意写上好几行的for循环呢还是只写一行memset呢
其实memset的效率比for循环要高出很多
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
海尔燃气热水器温度一直是35摄氏度
打折价怎么算,打8.88折怎么算?
为什么总是会感觉到无聊,还不想写作业,该怎
什么打底裤暖和?零下七八度,多少克的合适?
“槛外长江空自流”是什么意思?
重生2006的那小说叫什么 中5千万的那个
干淡菜有那些吃法?和什么食物会相克?
有没有人参加过剑桥大学的language assessmen
管束或列管式反应器内催化剂更换触媒装填或卸
日语中的借ります是一类动词吗?
显卡建议电源300w以上功耗35w那么额定300w的
围绕家风对个人和社会的积极影响设计两条公益
饥荒手机版鸟笼的制作方法
成都急用钱哪里可以?急急急…………
去杭州西湖在哪个火车站下车
推荐资讯
1959年4月初六生吉祥数字
请问老师、四川放秋稍的最佳时间是哪月份?
35和80的因数有哪些
25万的裸车买哪款车比较好
一周大的小猫喂什么(啊啊啊我要。。
我想学做正宗香酥鸭技术,去哪里求学好
赢自己一把读后感不少于340个字
外国国籍办中国银行卡要什么东西
我干卫生间贴的是抛金砖的砖金黄色的,买砖时
只能从一面看透的玻璃是什么玻璃?
请回答1988
乌鲁木齐去南山如何坐车
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?