zoukankan      html  css  js  c++  java
  • memset库函数

    头文件:#include <string.h>
     
    定义函数:void * memset(void *s, int c, size_t n);
     
    函数说明:memset()会将参数s 所指的内存区域前n 个字节以参数c 填入,然后返回指向s 的指针。在编写程序时,若需要将某一数组作初始化,memset()会相当方便。
     
    返回值:返回指向s 的指针。
     
    附加说明:参数 c 虽声明为int,但必须是unsigned char,所以范围在0 到255 之间。
     
    常用内存空间的初始化。
    1、初始化字符数组(常用)
    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
        char s[5];
        memset(s,'A',sizeof(s));
        s[5]='';
        puts(s);
        return 0;
    }

    2、初始化数组(注意:初始化为0正确实现,其他初始值还是通过循环语句实现)

    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
        int i,array1[5],array2[5];
        memset(array1,0,sizeof(array1));
        for(i=0; i<5; ++i)
            printf("%d ",array1[i]);
     
        printf("
    ");
     
        memset(array2,1,sizeof(array2));
        for(i=0; i<5; ++i)
            printf("%d ",array2[i]);
        return 0;
    }

    通过库函数memset()来对一个数组进行初始化,需要了解一下该函数的工作原理。库函数memset()是针对字节操作的,其中第二个参数值被赋给第一个参数指向的内存地址开始的每一个字节,因此,这种初始化其实存在局限性,也导致其主要用于清除数组内容等。比如:假设i=0,1,2,...
    memset(a,0,sizeof(a));  // 此时a[i]=0x00000000
    memset(a,-1,sizeof(a)); // 此时a[i]=0xffffffff
    memset(a,0x0f,sizeof(a)); // 此时a[i]=0x0f0f0f0f=252645135
    由于500=0x1f4,400=0x190,因此,如果使用
    memset(a,0x190,sizeof(a)); // 此时a[i]=0x90909090
    所以,初始化过程还是建议使用循环语句来做。
  • 相关阅读:
    AngularJS之ng-repeat指令
    AngularJS之ng-controller指令
    HttpClient通过Post上传文件
    response.setHeader()的用法
    response 设置响应头的常用几种方法
    理解HTTP session原理及应用
    mysqldump 利用rr隔离实现一致性备份
    Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
    AngularJS之ng-model指令
    AngularJS之ng-app指令
  • 原文地址:https://www.cnblogs.com/elie/p/4060598.html
Copyright © 2011-2022 走看看