• memory.h


    1.功能:提供内存操作函数

    2.函数:

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

    3.使用:

      (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所指的内存地址上,与<string.h>中的strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束''而结束 .

      示例:

    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个字符区域。 

      比较:

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

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

      示例:

    s1="hello.", s2="helli.";
    memcmp(s1, s2, strlen(s1));
  • 相关阅读:
    使用numpy生成二维正态分布
    %matplotlib inline的含义
    The following packages will be SUPERCEDED by a higher-priority channel是什么意思?
    conda命令详解
    软件包,API,SDK的区别
    IP组网实验(使用Cisco Packet Tracer路由器模拟软件)
    MAC地址表、ARP缓存表、路由表及交换机、路由器基本原理
    K'ed by TNT team是什么意思?
    使用Applescript、Automator和AfredWorkflow实现流式工作
    Redux源码分析之createStore
  • 原文地址:https://www.cnblogs.com/astonc/p/10666318.html
Copyright © 2020-2023  润新知