简介
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。