【发布时间】:2010-05-12 23:54:26
【问题描述】:
我想知道是否有人可以向我解释以下内容:如果我写
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;
编译失败。谁能解释一下?
【问题讨论】: