我想知道是否有人可以向我解释以下内容:如果我写的话
int i = 0;
float* pf = i;
Run Code Online (Sandbox Code Playgroud)
我收到编译错误(gcc 4.2.1):
error: invalid conversion from ‘int’ to ‘float*’
Run Code Online (Sandbox Code Playgroud)
有道理 - 它们显然是两种完全不同的类型.但如果相反我写
const int i = 0;
float* pf = i;
Run Code Online (Sandbox Code Playgroud)
它编译没有错误.为什么'const'会在作业的右侧产生影响?'const'关键字的概念不是能够对常量值强制执行类型约束吗?
我能够提出的任何解释都有点虚伪.我的解释也没有解释这个事实
const int i = 1;
float* pf = i;
Run Code Online (Sandbox Code Playgroud)
无法编译.任何人都可以提供解释吗?