memset库函数「建议收藏」

memset库函数「建议收藏」头文件:#include定义函数:void*memset(void*s,intc,size_tn);函数说明:memset()会将参数s所指的内存区域前n个字节以参数c填入,然后

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

头文件:#include <string.h>
 
定义函数:void * memset(void *s, int c, size_t n);
 
函数说明:memset()会将参数s 所指的内存区域前n 个字节以参数c 填入,然后返回指向s 的指针。在编写程序时,若需要将某一数组作初始化,memset()会相当方便。
 
返回值:返回指向s 的指针。
 
附加说明:参数 c 虽声明为int,但必须是unsigned char,所以范围在0 到255 之间。
 
常用内存空间的初始化。
1、初始化字符数组(常用)
#include <stdio.h>
#include <string.h>
int main(void)
{
    char s[5];
    memset(s,'A',sizeof(s));
    s[5]='\0';
    puts(s);
    return 0;
}

memset库函数「建议收藏」

2、初始化数组(注意:初始化为0正确实现,其他初始值还是通过循环语句实现)

#include <stdio.h>
#include <string.h>
int main(void)
{
    int i,array1[5],array2[5];
    memset(array1,0,sizeof(array1));
    for(i=0; i<5; ++i)
        printf("%d ",array1[i]);
 
    printf("\n");
 
    memset(array2,1,sizeof(array2));
    for(i=0; i<5; ++i)
        printf("%d ",array2[i]);
    return 0;
}

memset库函数「建议收藏」

通过库函数memset()来对一个数组进行初始化,需要了解一下该函数的工作原理。库函数memset()是针对字节操作的,其中第二个参数值被赋给第一个参数指向的内存地址开始的每一个字节,因此,这种初始化其实存在局限性,也导致其主要用于清除数组内容等。比如:假设i=0,1,2,…
memset(a,0,sizeof(a));  // 此时a[i]=0x00000000
memset(a,-1,sizeof(a)); // 此时a[i]=0xffffffff
memset(a,0x0f,sizeof(a)); // 此时a[i]=0x0f0f0f0f=252645135
由于500=0x1f4,400=0x190,因此,如果使用
memset(a,0x190,sizeof(a)); // 此时a[i]=0x90909090
所以,初始化过程还是建议使用循环语句来做。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167297.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Atitit.提升api兼容性的方法 v3 q326

    Atitit.提升api兼容性的方法 v3 q326

    2021年9月13日
    81
  • CAN通信(一)——认识CAN总线[通俗易懂]

    CAN总线通俗易懂CAN总线背景CAN总线是什么网络拓扑节点、报文、信号CAN总线背景作为并非通信专业的土鳖汽车工程师,CAN通信是必须掌握的,但是,记得刚开始上来一看什么定义(什么串行数据通信协议,什么物理层和数据链路层功能,什么帧处理,位填充。。。刚学的时候确实一脸懵)。所以,我只从汽车工程师的角度讲讲我能理解和用得到的CAN通信,才疏学浅,请各位指教!关于OSI模型、物理层、数据链路层,高低电平、数据帧。。等等等,请自行查看如下链接:链接:https://blog.csdn.net/kgc

    2022年4月11日
    68
  • 如何制作whl文件「建议收藏」

    如何制作whl文件「建议收藏」wheel文件Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为.zip即可可看到压缩包里面的内容。按照官网说法,wheels是发行版Python的新标准并且要取代.egg。Egg格式是由setuptools在2004年引入,而Wheel格式是由PEP427在2012年定义。Wheel现在被认为是Python的二…

    2022年5月7日
    114
  • Field XXX in XXXX required a bean of type XXXX that could not be found

    Field XXX in XXXX required a bean of type XXXX that could not be found

    2022年4月2日
    58
  • Android 极简反射教程及应用示例

    Android 极简反射教程及应用示例

    2021年9月16日
    50
  • SDN网络下有哪些SDN交换机选择?「建议收藏」

    随着SDN技术的发展,SDN网络架构迎来了历史性的变革,SDN被认为是下一代网络变革的重要方向。而SDN交换机作为一款高性能,高密度的下一代交换机,为SDN大规模的商用部署和下一代网络技术的创新应用,起到了助推加速的作用。那么,什么是SDN网络,基于SDN技术的SDN交换机又是什么?面对不同类型的SDN交换机,我们又应该如何选择?接下来,本文将为您解答。SDN网络是什么SDN(SoftwareDefinedNetwork)即“软件定义网络”,SDN网络存在的目的是为了简化过多的网络结构,通过..

    2022年4月11日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号