大神博客&&memset——mencpy

本文介绍了C语言中用于内存操作的两个重要函数:memcpy用于高效复制内存块,适用于对象数组及字符串;memset则用于快速初始化或清零内存区域,提高代码效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://oldpan.me/archives/recall-me-2018

https://www.cnblogs.com/king-ding/p/memset_mencpy.html

1. 大神的blog 深度学习, c/c++, python, js

2. 特别好用的内存赋值,可用于 对象数组。

#include<string.h>

int main(void)
{
    int a[5] = {1, 2, 3, 4, 5}, b[5];
    /*第一个参数是要保存的位置的起始地址,所以我们直接放b
     *第二个参数是源数据的起始地址,所以我们把a放上去
     *第三个参数是要复制的内存块的长度,为a的长度sizeof(a)*/
    memcpy(b, a, sizeof(a));
}

就这样一行的代码,就能代替我们之前的for循环,是不是简洁高效了许多。这个函数的作用不仅仅是这样,它还可以用与两个字符串的复制,内存块的复制等,各种数据类型都能复制,是不是一个很棒的函数呢*^_^*它的更多功能还待各自己去探索,有好用的技巧也请务必告诉我,我必将感谢。

那么,接下来,我们又有新的问题了,我们已经把a的数据传给b了,所以想把a清零,我们要怎么做呢?

一、我们可以像以前那样用循环来做,但是强迫症不接受啊。

二、我们可以用刚刚学到的memcpy函数,再弄一个初始化的数组c = {0, 0, 0, 0, 0},然后把c复制给a,但是这样做就有点弄巧成拙了,还不如用方法一。

三、可以用我们接下了要介绍的memset函数,一句话搞定,新姿势get :-)

memset

#include<string.h>

int main(void)
{
    int a[5] = {1, 2, 3, 4, 5};
    memset(a, 0, sizeof(a));
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值