在这里,我尝试了一个程序,其中局部变量x被分配给静态变量i并检查它是否分配值.
我在'C'中编程:显然它会产生编译时错误(初始化元素不是常量).
然后我在C++中实现了相同的程序:这次我没有得到编译时错误,但输出为"相等"(不应该像以前一样给出编译时错误).
请解释一下.
int main() //C code
{
int x=10;
static int i=x;
if(i==x)
printf("Equal");
return 1;
}
int main() //C++ code
{
int x=10;
static int i=x;
if(i==x)
cout<<"equal";
return 0;
}
Run Code Online (Sandbox Code Playgroud)