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

标签 c++ reference pointers constants

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
}

2) 通过指针传递还是通过引用传递更快?还是一样?

最佳答案

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

关于c++ - 关于通过 const 指针/const 引用传递的 2 个快速问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2286047/

相关文章:

c - 如何比较传递给函数的数组元素的值

C++专门化模板类函数而无需重复代码

c++ - 音频处理 - 音调识别

c++ - 我创建了一个库,想知道设计是否效率低下

c++ - 如何修复此 C++ 全局对象指针 hack?

C++ - 为什么对同一对象的 2 个本地引用保持同步?

c++ - 重载运算符的返回值

c - 使用指针数组的选择排序

c++ - 在 QGraphicsItem 之上使用 QRubberBand

C 指针和内存 - 理解