C++ 中的数据类型转换

Datatype casting in c++

本文关键字:类型转换 数据 C++      更新时间:2023-10-16

我最近经常使用演员表,但我实际上不知道一些演员表是做什么的。这可能是一些非常基本的东西,但我就是不明白。

这些有什么区别?

*(DWORD*)VAR;
(DWORD)VAR;// changes VAR to DWORD
(DWORD*)VAR;//Changes pointer VAR to DWORD
(DWORD)*VAR;//Changes pointer VAR to DWORD

根据MSDN

const char *pCast = myStr; // or (const char *)myStr;
(DWORD*)VAR is the same as DWORD *VAR which is also the same as (DWORD)*VAR
  • *(DWORD*)VAR; VAR强制转换为指向DWORD的指针,并返回存储在那里的值。
  • (DWORD*)VAR; VAR强制转换为指向DWORD的指针。
  • (DWORD)VAR; VARDWORD
  • (DWORD)*VAR;假定VAR是一个指针,检索存储在那里的值并将该值强制转换为DWORD

从右到左阅读它们


*(DWORD*)VAR;- 阅读VAR(应该是一个指针(
- 投射到"指向无符号长长的指针"
- 取消引用(结果为无符号长左值(


(DWORD*)VAR;- 阅读VAR(应该是一个指针(
- 强制转换为"指向无符号长整型指针"(结果为无符号长整型指针(


(DWORD)VAR;- 阅读VAR
- 转换为"无符号长"(结果为无符号长右值(


(DWORD)*VAR;- 阅读VAR(应该是一个指针(
-引用
- 转换为"无符号长"(结果为无符号长右值(