9
我想知道如果任何人都可以解释以下对我说:如果我写在C++中为const int分配一个指针变量?
int i = 0;
float* pf = i;
我得到一个编译错误(GCC 4.2.1):
error: invalid conversion from ‘int’ to ‘float*’
有道理 - 他们显然两种完全不同的类型。但如果我写
const int i = 0;
float* pf = i;
它编译没有错误。为什么'const'在作业的右边有所作为?是不是'const'关键字的想法的一部分能够强制常量值的类型约束?
我已经能够想出任何解释感觉有点虚假。而且我的解释也没有解释这样的事实:
const int i = 1;
float* pf = i;
无法编译。任何人都可以提供解释吗?