要写C++就不要用C的东西该用nullptr不要用NULL, 指标转型reinterpret_cast最后回答你的问题本身 因为你的写法有读取空标的风险所以会跳warning那行if要拆成巢状两层ifif(Ptr != nullptr){if((*(uint32_t *)Ptr) == 0){指标没指著东西本来就不该读取 只是NULL帮你做了一层保险 不代表这个操作是正确的
https://msdn.microsoft.com/en-us/library/2ayc37ac连MSDN都这样写......你确定warning是那一行?你照MSDN的code打会出现warning吗?不会是因为编译时期决定的关系吧 因为你的程式不用run-time就可以知道结果 所以编译时期就看到了