zoukankan      html  css  js  c++  java
  • C语言memset()函数:将内存的前n个字节设置为特定的值

    头文件:#include <string.h>

    memset() 函数用来将指定内存的前n个字节设置为特定的值,其原型为:
        void * memset( void * ptr, int value, size_t num );

    参数说明:

    • ptr 为要操作的内存的指针。
    • value 为要设置的值。你既可以向 value 传递 int 类型的值,也可以传递 char 类型的值,int 和 char 可以根据 ASCII 码相互转换。
    • num 为 ptr 的前 num 个字节,size_t 就是unsigned int。


    【函数说明】memset() 会将 ptr 所指的内存区域的前 num 个字节的值都设置为 value,然后返回指向 ptr 的指针。

    memset() 可以将一段内存空间全部设置为特定的值,所以经常用来初始化字符数组。例如:

    1. char str[20];
    2. memset(str, '', sizeof(str)-1);


    【返回值】返回指向 ptr 的指针。

    注意:参数 value 虽声明为 int,但必须是 unsigned char,所以范围在0 到255 之间。

    范例:

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <string.h>
    4. int main()
    5. {
    6. // 不可以声明为 char *str = "http://c.biancheng.net";
    7.     char str[] = "http://c.biancheng.net";
    8.     memset(str, '-', 7);
    9.     puts(str);
    10.     system("pause");
    11.     return EXIT_SUCCESS;
    12. }

    执行结果:
    -------c.biancheng.net

    注意:字符数组是可以被修改的,字符串是只读的,不能被修改,而 memset() 又必须修改 str,所以不能将 char str[] = "http://c.biancheng.net"; 声明为 char *str = "http://c.biancheng.net";,否则运行时会报错。

  • 相关阅读:
    python pytest全局用例共用之conftest.py详解
    mybatis mapper文件中select标签参数汇总
    mybatis整合redis实现二级缓存(转载)
    代码智能---aiXcoder插件
    mybatis运行原理及源码流程分析
    linux关闭防火墙
    mysql 锁
    mysql 性能低下的分析
    针对msyql的like中 两边都不得不使用% 的场景分析
    mysql 相关文件路径、配置
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/11351989.html
Copyright © 2011-2022 走看看