小编Pra*_*ane的帖子

分配给静态变量的局部变量;'c'中的编译错误,但在c ++中成功

在这里,我尝试了一个程序,其中局部变量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)

c c++

-1
推荐指数
1
解决办法
78
查看次数

标签 统计

c ×1

c++ ×1