将ULONGLONG分配给16字节数组的结果是什么

What is the result of assigning a ULONGLONG to a 16 byte array?

本文关键字:数组 结果 结果是 是什么 字节数 字节 ULONGLONG 分配      更新时间:2023-10-16

我是一名Java开发人员,对指针知之甚少。我有以下C++代码(别人写的),我正在努力理解:

ULONGLONG passedValue;
BYTE myArr[16];
memset(myArr, 0x00, sizeof myArr);
*((ULONGLONG *) myArr) = passedValue;

虽然我知道memset方法调用用0填充myArr字节数组(大小为16),但我不确定最后一行的作用。

根据MSDN,ULONGLONG是8字节。。。而myArr是16个字节。执行完最后一条语句后,myArr中会有什么内容?

此术语(ULONGLONG *) myArr将myArr转换为指向ULONGLONG类型的指针。

那么,*((ULONGLONG *) myArr)是指针指向的位置的值。

而且,

*((ULONGLONG *) myArr) = passedValue;

将CCD_ 6分配给CCD_。

passedValue 00 00 00 00 00 00 00 00
^^^^^^^^^^^
8 bytes