zoukankan      html  css  js  c++  java
  • C语言 memset函数及其用法

    定义

    void *memset(void *s, int c, unsigned long n);

    描述

    将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化。

    例子

    # include <stdio.h>
    # include <string.h>
    int main(void)
    {
        int i;  //循环变量
        char str[10];
        char *p = str;
        memset(str, 0, sizeof(str));  //只能写sizeof(str), 不能写sizeof(p)
        for (i=0; i<10; ++i)
        {
            printf("%dx20", str[i]);
        }
        printf("
    ");
        return 0;
    }

    根据memset函数的不同,输出结果也不同,分为以下几种情况:

    memset(p, 0, sizeof(p));  //地址的大小都是4字节
    0 0 0 0 -52 -52 -52 -52 -52 -52
    
    memset(p, 0, sizeof(*p));  //*p表示的是一个字符变量, 只有一字节
    0 -52 -52 -52 -52 -52 -52 -52 -52 -52
    
    memset(p, 0, sizeof(str));
    0 0 0 0 0 0 0 0 0 0
    
    memset(str, 0, sizeof(str));
    0 0 0 0 0 0 0 0 0 0
    
    memset(p, 0, 10);  //直接写10也行, 但不专业
    0 0 0 0 0 0 0 0 0 0

     参考:

    http://c.biancheng.net/view/231.html

  • 相关阅读:
    1组Alpha冲刺总结
    1组Beta冲刺4/5
    1组Beta冲刺5/5
    1组Alpha冲刺4/6
    1组Alpha冲刺总结
    1组Beta冲刺2/5
    1组Beta冲刺3/5
    1组Beta冲刺2/5
    1组Alpha冲刺4/6
    1组Alpha冲刺5/6
  • 原文地址:https://www.cnblogs.com/sea-stream/p/11219742.html
Copyright © 2011-2022 走看看