简介
memset() 是以字节为单位的初始化函数,函数原型是:
//
// vcruntime_string.h
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// <string.h> functionality that is implemented in the VCRuntime.
//
void* __cdecl memset(
_Out_writes_bytes_all_(_Size) void* _Dst,
_In_ int _Val,
_In_ size_t _Size
);
_Dst:初始化首地址
_Val:按字节初始化的值
_Size:初始化的字节的个数
示例
#include <iostream>
#include <iomanip>
#include <bitset>
using namespace std;
int main()
{
int a;
memset(&a, 1, sizeof(a));
std::cout << "初始化字节个数:" << sizeof(a) << std::endl;
//以十制形式输出
std::cout <<"十进制:"<< dec << a << std::endl;
//以二制形式输出
std::cout << "二进制:" << (bitset<32>) a << std::endl;
//以十六制形式输出
std::cout << "十六进制:" << hex << a << std::endl;
}

memset()函数是按字节初始化,故用来初始化的值1在内存中实际表示为0000 0001,a是int类型,占4个字节,依次对4个字节进行赋值,所以a实际初始化的值便为0000 0001 0000 0001 0000 0001 0000 0001。
本文介绍了C/C++中的memset()函数,它用于以字节为单位初始化内存区域。通过示例展示了如何使用memset()初始化整型变量a,并分别以十进制、二进制和十六进制形式输出结果,揭示了memset()初始化内存的原理。

1万+

被折叠的 条评论
为什么被折叠?



