关于通过const指针/ const引用传递的2个快速问题

Mar*_*lon 2 c++ pointers const reference

1)有人可以解释以下内容吗?

void OnCreate(HWND hWnd, const LPCREATESTRUCT lpCreateStruct)
{
   lpCreateStruct->x = 2; // this compiles
}

void OnCreate(HWND hWnd, const CREATESTRUCT * lpCreateStruct)
{
   lpCreateStruct->x = 2; // this does not compile
}
Run Code Online (Sandbox Code Playgroud)

2)通过指针或引用传递更快?或者相同?

Nik*_*sov 5

const LPCREATESTRUCT扩展为CREATESTRUCT* const,即一个指向非const结构的常量指针, const CREATESTRUCT*而是一个指向常量结构的非常量指针,因此编译器是正确的.