加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

C语言 memset函数及其用法

发布时间:2020-12-14 04:40:45 所属栏目:大数据 来源:网络整理
导读:? 定义 void *memset( void *s, int c,unsigned long n); 描述 将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化。 ? 例子 # include stdio.h # include

?

定义

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("n");
    return 0;
}

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

memset(p,0,sizeof(p));  //地址的大小都是4字节
0 0 0 0 -52 -52 -52 -52 -52 -52

memset(p,sizeof(*p));  //*p表示的是一个字符变量,只有一字节
0 -52 -52 -52 -52 -52 -52 -52 -52 -52

memset(p,sizeof(str));
0 0 0 0 0 0 0 0 0 0

memset(str,sizeof(str));
0 0 0 0 0 0 0 0 0 0

memset(p,10);  //直接写10也行,但不专业
0 0 0 0 0 0 0 0 0 0

?

?参考:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读