我希望你能为我解释以下内容:如果我写下
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;
无法编译。有人能给出解释吗?