【发布时间】:2019-11-21 10:46:40
【问题描述】:
在查看代码时,我偶尔会看到带有常量指针的函数原型,例如:
void Foo(int * const bar);
使用这样的函数的程序员通常不理解他实际看到的内容,而该函数后来被这样使用:
const int bla = 0;
Foo((int* const) &bla);
据我了解,这会导致未定义的行为。在这种情况下,常量指针引起了混乱。
我的问题是:什么时候需要函数原型中的常量指针(不是指向常量的指针)才能使代码正确?
【问题讨论】:
-
它可以让你在编译时通过修改
const指针作为错误来识别错误