memory.h学记

memory.h学记


1.介绍:

功能:提供内存操作函数

函数:

extern void *memchr(const void *buffer, int ch, size_t count);
extern void *memcpy();
extern void *memset();
extern int memcmp();

2.函数介绍:

1).memchr(const void *buffer, int ch, size_t count):

功能:buffer数组指针,在指定数组的count个字符的字符串里查找ch 首次出现的位置。返回一个指针,指向ch 在字符串中首次出现的位置, 如果ch 没有在字符串中找到,返回NULL。

示例:char str[20]="hello,world.";

            if(!memchr(str,'w',strlen(str)))

            printf("find error");

2).memcpy(void *b1,void *b2,size_t n):

功能:拷贝b2所指的内存内容前n个字节到b1所指的内存地址上,与中的strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束 .

示例:s1="s1",s2="s2";memcpy(s1,s2,strlen(s2));将s2内容拷贝到S1;

3).memset(void *b1,int ch,size_t n )

功能:作用是在一段内存块中(b1所指)填充某个给定的值(ch),它对较大的结构体或数组进行清零操作的一种最快方法。

示例: char s[20];memset(s,0,sizeof(char)*20);

4.memcmp(void *b1,void *b2,size_t count):

功能:比较b1和b2所指字符串中指定的前count个字符区域。

比较:

strcmp:strcmp比较的字符串;strcmp需要时刻检查是否遇到了字符串结束的 \0 字符;strcmp在比较四字节是逐字节比较,

memcmp:memcmp比较的是内存块,memcmp无须检查'\0';memcmp用了字符串比较指令,在字符串较大的情况下,字符串比较指令比用逐字节比较好。

示例:s1="hello.",s2="helli.";memcmp(s1,s2,strlen(s1));



你可能感兴趣的:(常识技巧)