【发布时间】:2017-04-11 07:26:42
【问题描述】:
我想知道在使用指向常量整数的指针时变量之间是否存在某种隐式转换, 例如,如果我使用变量类型的地址 int 或 const int 它接受存储它, 但是,如果我使用普通的 pointer to int 它不允许存储 const int 类型的地址,这是为什么呢?提前谢谢
int i=4;
const int ii=4;
//pointer to constant int
const int *pci=&i; //OK.
pci=ⅈ //OK.
int *pi=ⅈ //ERROR invalid conversion.
【问题讨论】:
-
您要的是
c++还是c?不同的语言;不同的标准;const的不同含义。 -
int*可以隐式转换const int*,反之则不行。在 C++ 中。 -
将 const 指针分配给非 const 指针是错误的。原始被标记为 const 是有原因的,因此将其分配给非 const 指针被认为是错误的。但是我认为你可以用 const_cast 实现你想要的
标签: c++ casting constants const-cast