2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【C语言】memset函数用法

【C语言】memset函数用法

时间:2021-08-28 04:50:05

相关推荐

【C语言】memset函数用法

数组也可以直接进行初始化,但 memset 是对较大的数组或结构体进行清零初始化的最快方法,因为它是直接对内存进行操作的。

头文件:#include <string.h>

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

函数的功能是:将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化。参数 n 的值一般用sizeof()获取,这样比较专业。

# 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("%d\x20", str[i]);}printf("\n");return 0;}

\x20:使用十六进制表示形式(恰好两位)与 ASCII 字符匹配。

根据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

相关知识

【C/C++】strlen 和sizeof 的区别

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。