函数杂记详解

第一类:string

#include<string>内的函数
1.memset();//初始化数组函数
2.memcpy();

<1>.

memset函数是C/C++语言中的一个用于内存复制的函数,声明在 string.h 中
(C++是 cstring)。其原型是:
void *memset(void *s,int c,size_t n)
作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。

对于变量
struct sample_strcut stTest;

一般情况下,清空stTest的方法:
stTest.csName[0]='/0';
stTest.iSeq=0;
stTest.iType=0;

用memset就非常方便:
memset(&stTest,0,sizeof(struct sample_struct));

如果是数组:
struct sample_struct TEST[10];
则:
memset(TEST,0,sizeof(struct sample_struct)*10);

1.memset() 函数常用于内存空间初始化。

2.memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化

例如:memset(a,’\0’,sizeof(a));

3.memset可以方便的清空一个结构类型的变量或数组。

注意:
memset的使用要严谨,因为它的作用是将已开辟内存空间 s 的首 n 个字节的值,设为值 c而不是单单的赋值。

<2>.

memcpy函数是C/C++语言中的一个用于内存复制的函数,声明在 string.h 中
(C++是 cstring)。其原型是:
void *memcpy(void *destin, void *source, unsigned n);

作用是:以source指向的地址为起点,将连续的n个字节数据,复制到以destin指向的地址为起点的内存中。函数有三个参数,第一个是目标地址,第二个是源地址,第三个是数据长度。

注意:
1.数据长度(第三个参数)的单位是字节(1byte = 8bit)。
2.注意该函数有一个返回值,类型是void*,是一个指向destin的指针。

使用memcpy函数时,特别要注意数据长度。如果复制的数据类型是char,那么数据长度就等于元素的个数。而如果数据类型是其他(如int, double, 自定义结构体等),就要特别注意数据长度的值。
好的习惯是,无论拷贝何种数据类型,都用 n * sizeof(type_name)的写法。

ex:
memcpy(back,dist,sizeof dist);
将dist中的数复制到back中

第二类:map

//等过两天再完整的更新

猜你喜欢

转载自blog.csdn.net/weixin_51626694/article/details/118731605