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

    memset函数程序范例

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 int main(void)
     5 {
     6     //1.对一段内存空间全部设置为某个字符,即定义的字符串进行初始化
     7     char buffer[] = "Helloworld
    ";
     8     printf("Buffer before memset:%s", buffer); //输出结果Buffer before memset:Helloworld
     9     memset(buffer,'*', strlen(buffer));
    10     printf("Buffer after memset:%s
    ", buffer);//输出结果Buffer after memset:***********
    11 
    12     //2.该处的字符串初始化为int类型
    13     int i, j, k;
    14     int array[5] = {1,4,3,5,2};
    15     for(i=0; i<5; i++)
    16         printf("%d ", array[i]);            //输出结果1 4 3 5 2
    17     printf("
    ");
    18     memset(array, 0, 5*sizeof(int));        //或memset(array, 0, sizeof(array));
    19     for(j=0; j<5; j++)
    20         printf("%d ", array[j]);            //输出结果0 0 0 0 0
    21     printf("
    ");
    22 
    23     //3.使用memset按字节赋值,每个数组元素的值实际上是0x01010101即十进制的16843009
    24     memset(array, 1, 5*sizeof(int));
    25     for(k=0; k<5; k++)
    26         printf("%d ", array[k]);            //输出结果16843009 16843009 16843009 16843009
    27     printf("
    ");
    28     return 0;
    29 }
    View Code

    分析:

      1.因程序的数组buffer是字符型的,字符型占据内存大小是1Byte,而memset函数也是以字节为单位进行赋值的,输出正确;

      2.不一定就是把内容全部设置为ch指定的ASCII值,而且该处的ch可为int或者其他类型,并不一定要是char类型;

      3.因memset是对字节进行操作,以字节为单位就是对array指向的内存的4个字节进行赋值,每个字节用数1去填充,转为二进制后,1就是00000001,一个int元素是4字节,合一起是0000 0001,0000 0001,0000 0001,0000 0001,转化成十六进制就是0x01010101,就等于16843009,完成对一个int元素的赋值所以用memset对非字符型数组赋初值是不可取的! 

    本文参考链接:

    http://baike.baidu.com/link?url=svs6WnjQKV7Ugx3SZke6BvyVy99OOE8I-zn8gSw0HFb-YD-IIcdf2F2h5WGslM4Q4Dog28oXyjX51lnvF2n0Kq

    亲爱的读者:如果觉得本文对你有所帮助,请点击推荐,分享给其他人!
  • 相关阅读:
    struts1与struts2的防止表单重复提交
    JSTL 笔记
    fiddler的columns添加HTTPMethod
    兼容性测试技巧
    测试基础知识总结
    测试用例的书写方式及测试模板大全【转】
    软件测试的方法分类
    解决vue不支持promise语法问题
    vue-router 导航守卫
    e.target与事件委托简例【转】
  • 原文地址:https://www.cnblogs.com/zhuangwei/p/5296076.html
Copyright © 2011-2022 走看看