,,C语言memset函数详解

,,C语言memset函数详解

本文主要介绍C语言中的memset()函数,包括memcpy()函数和memset()函数的区别。有需要的朋友可以参考一下,希望能帮到你。

:

目录

1.memset函数原型:2。使用memset函数3。将值赋给int类型1 4。打开内存5。memset给变量赋值。总结在C语言中,使用变量之前,需要对变量的值进行初始化。一个数组占用一个连续的内存块。c语言提供memset函数(头文件string.h)将数组分组赋值。(memset函数也可以给变量赋值,但是只有无聊的人才会这么做。详情见下表5)

一、memset函数原型:

void memset ( void *s,char ch,unsigned n)

功能:将一个以S为首地址的连续N字节内存单元分配给ch。

二、使用memset函数

#包含stdio.h

#包含字符串. h

int main() {

char c[10];

//将数组C的所有10个元素赋给“a”

memset(c,' a ',10);

for(int I=0;i10i ) {

printf('%c\t ',c[I]);

}

返回0;

}

输出:

啊啊啊啊啊啊啊啊

#包含stdio.h

#包含字符串. h

int main()

{

int a[10];

memset(a,0,10 * sizeof(int));

/*数组A的类型是int,一个int占用4个字节,所以a[10]实际上有40个字节。

char类型只占用1个字节,所以不需要乘以sizeof(char) */

//输出数组A和b。

for(int I=0;i10i ) {

printf('%d\t ',a[I]);

}

printf(' \ n ');

返回0;

}

输出:

0 0 0 0 0 0 0 0 0 0

emset函数用于为n个字节赋值。而char type占用1个字节。但int类型占用4个字节,所以在给int、short等类型赋值时,需要乘以字节数。

三、给int类型赋值为1

#包含stdio.h

#包含字符串. h

int main()

{

int a[10];

memset(a,1,10 * sizeof(int));

//输出数组a

for(int I=0;i10i ) {

printf('%d\t ',a[I]);

}

返回0;

}

输出:

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

从输出中可以看出,数组元素没有赋值1。为什么?这是为什么呢?

如前所述,memset给连续的N个字节赋值。但是int类型占用了4个字节。memset赋值时,数组直接分成40个字节进行赋值,四个字节不作为一个整体。

四、扒开内存

我们定义一个数组;

int a[2];

memset(a,1,2 * sizeof(int));

假设内存中的每一位都是0,定义数组,并将内存的每一位用A作为第一个地址:

0000 0000 0000 0000 0000 0000 0000 0000

0000 0000 0000 0000 0000 0000 0000 0000

使用memset函数为每个字节赋值1。一个字节是8位,所以数组变成

0000 0001 0000 0001 0000 0001 0000 0001

0000 0001 0000 0001 0000 0001 0000 0001

注意,当给一个数组赋值时,一个int被分成四个独立的字节。

而0000 0001 0000 0001 0000 0001 0001 0001 0000 0001十进制正好

16,843,009

五、memset给变量赋值

memset函数第一个参数是指针类型,也就是说,只要我们给他一个地址。

#包含stdio.h

#包含字符串. h

int main()

{

char a;

memset(a,' c ',1);

printf('%c\n ',a);

返回0;

}

输出:

c

总结

本文到此为止。希望能帮到你,也希望你能多关注我们的更多内容!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: