zoukankan      html  css  js  c++  java
  • memset的实验

     

    关于memset的实验

      实验一:memset对char数组赋初值

    #include<iostream>
    using namespace std;
    int main()
    {
        char a[110];
        memset(a,'1',sizeof(a));
        for(int i=0;i<110;i++)
        cout<<a[i];//输出一堆1
        return 0;
    }
    

      

      

      例:memset(a,1,sizeof(a))

      结果:直接输出对应的ASCII表

        输出一堆笑脸☺what?

      结论:char数组中,可以用memset任意赋初值

      


     实验二:memset对int类型数组赋初值

    #include<iostream>
    using namespace std;
    int main()
    {
        int a[110];
        memset(a,-1,sizeof(a));
        for(int i=0;i<110;i++)
        cout<<a[i];//输出一堆-1
        return 0;
    }
    

      

      例:memset(a,0,sizeof(a))

      输出一堆0

      错误的情况:

      例:memset(a,1,sizeof(a))

          输出一堆乱七八糟的数

      经多次实验,只有0和-1可以给int数组赋初值;

      结论:在int数组中,memset只能用来赋值0和-1


     实验三:对结构体用memset初始化

    #include<iostream>
    using namespace std;
    struct a
    {
        int a;
        char b;
    }a[110];
    int main()
    {
        memset(a,'1',sizeof(a));
        for(int i=0;i<110;i++)
        cout<<a[i].a;//输出乱七八糟的数字
        for(int i=0;i<110;i++)
        cout<<a[i].b;//输出1
        return 0;
    }
    

      

      例:如上

      实验结论:memset对结构体的初始化相当于分别对结构体内部的各个成分进行初始化,错误与否与结构体内的变量类型有关;

      实验四:对bool数组用memset初始化

      

    #include<iostream>
    using namespace std;
    int main()
    {
        bool a[110];
        memset(a,1,sizeof(a));
        for(int i=0;i<110;i++)
        cout<<a[i];
        return 0;
    }
    

      

      样例:如上

      经多次实验,bool类型用memset初值赋为正数时可行,负数时不可行

      结论:memset对bool类型赋初值只能赋值为正数

      附:memset的头文件为<cstring>!!!!!

     

  • 相关阅读:
    [算法笔记] 扩展欧几里得算法
    [算法笔记] 数学基础
    [算法] 动态规划 (2)
    [算法笔记] 图论总结
    最简单的数据库入门教程—04—00—关系数据库
    最简单的数据库入门教程—03—数据库系统体系
    最简单的数据库入门教程—02—数据模型
    最简单的数据库入门教程—01—数据库系统概论
    最简单的数据库入门教程—00—数据库导论
    数据可视化分析
  • 原文地址:https://www.cnblogs.com/pirote-zjy/p/7717533.html
Copyright © 2011-2022 走看看