zoukankan      html  css  js  c++  java
  • memset函数

    有时我们希望快速地将某个数组的元素全部置为0或者其他的某个值,一种方法是使用循环来实现,而C语言string.h提供了一个更为方便的函数memset来完成该工作。

    memset的定义

    void * memset ( void * ptr, int value, size_t num );
    

    示例代码

    #include<iostream>
    #include<cstring>
    using namespace std;
    
    int main(){
        int arr[5] = {1, 2, 3, 4, 5};
        
        memset(arr, 0, sizeof(arr));
        for(int i = 0; i < 5; i++)
            cout << arr[i] << " ";
    } 
    

    输出结果为:

    0 0 0 0 0
    

    注意:

    memset函数是逐个字节填充,即只能将一个整数填充为全0或者全1。而带符号整数在计算机中使用补码表示,因此memset函数只能给数组赋值为全0,或者全-1.

    示例代码:

    #include<iostream>
    #include<cstring>
    
    int main()
    {
        int a[10];
        memset(a, 11, sizeof(a));
        printf("%d
    ", sizeof(a));
        for (int i = 0; i < 10; i++){
            printf("%d ", a[i]);
        }
    }
    

    运行结果:
    40
    185273099 185273099 185273099 185273099 185273099 185273099 185273099 185273099 185273099 185273099

    可见,memset函数的作用是将从起始地址开始的长度为num的字节全部以某字节填充,并且只能用于填充0和-1。

    CS专业在读,热爱编程。
    专业之外,喜欢阅读,尤爱哲学、金庸、马尔克斯。
  • 相关阅读:
    lua版本的一个状态机
    unity getcomponentsinchildren 翻船
    dotween tips
    ulua c#调用lua中模拟的类成员函数
    洗牌算法
    unity的一些tips
    用Unity写一个12306验证器的恶搞图生成软件
    好久没写Blog了
    蛋疼的时候写三消游戏(十三)
    用DropBox分享Unity3D的Web应用
  • 原文地址:https://www.cnblogs.com/jmhwsrr/p/14598718.html
Copyright © 2011-2022 走看看