4

比较 const 和非常量指针。比较合法吗?对这种比较的任何特殊照顾。谢谢。

4

2 回答 2

10

指向的指针T可以隐式转换为指向的 const 指针T;类似地,指向的指针T可以隐式转换为指向的指针const T。当您尝试将指针与 const 指针进行比较时,编译器将根据需要执行这些转换中的任何一个,或两者都执行。没有什么比比较两个非常量指针或两个常量指针更危险的了。

于 2013-02-07T23:56:44.520 回答
-3

const 的目的如下

常量字符* p

就是承诺你不会改变它。理论上,非常量指针永远不应该指向同一代码中的同一位置,这是良好的编码习惯。在实践中,您最终可能会制作一些 const 内容,因为它让您的生活更轻松,但从概念上讲,它并不是真正的 const。在这种情况下,您可能需要进行比较。如前所述,根据您使用的编译器及其设置,它可能会或可能不会喜欢这样的比较。以防万一,在比较这是否困扰您之前,强制强制转换为非常量,例如:

if ((char*)const_p == non_const_p)

于 2013-02-08T00:02:21.170 回答