首先如果你用的是vs测试这段代码的话,它都会报如下图所示的错误:
这正如c++primer中第40页所说的(定义在函数内部的内置类型变量将不被初始化,如果试图去拷贝或者其他形式访问这类值的话将会引发错误)。
但是如果在vc这类的编译器上执行这段代码就不会发生错误,他就会为a和e赋一个随机数。如下图所示:。
随意你的赋值得到的a和e输出的就是随机数,但是对于不同编译器随机数的输出又不同。
e没有初始化,没有初始化在C/C++中可以是任意值,不像Java会被初始化为0。
把int i =0删掉就好了,????
你是用的VS?我使用GCC编译器测试,a,e均是随机值,而且c++中普通的局部变量是不会默认初始化的,也就是随机值,只有全局或者静态全局变量才会有默认值。
int main()
{
int i=0;
static int a,e ,cout_i=0;
int o=0;
int u=0;
cout<<a<<","<<e<<","<<cout_i<<","<<o<<","<<u<<endl;
return 0;
}
这样 a,e 就会是0
定义变量的时候或使用前先初始化一个值。
a...e...你就你没赋值是 随机数 所以 不是你要的数啊
a,e为随机数,只不过a的随机值恰好为0罢了
这个e的值应该是0啊,为什么显示的是62?