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));
}