小编sup*_*der的帖子

为什么在ubuntu linux中用于c ++的g ++编译器中局部变量初始化为0?

根据c ++上的任何一本书,任何未初始化的c ++局部变量都将包含一个垃圾值.但是,请查看以下程序:

#include<iostream>
using namespace std;
float a;
class A
{
public:
float b;
};
int main()
{
float c;
static float d;
static float e = 0;
A f;
cout<<"\n global a : "<<a<<"\n class variable b : "<<f.b;
cout<<"\n local c : "<<c<<"\n static local d : "<<d
<<"\n static initialized local e : "<<e;
}
Run Code Online (Sandbox Code Playgroud)

如果在ubuntu linux上使用g ++编译,它会提供以下输出:

global a : 0
class variable b : 6.94896e-36
local c : 0
static local d : 0 …
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c++ ×1