【发布时间】:2018-11-17 17:18:49
【问题描述】:
一位程序员告诉我,如果我们不给任何变量赋值,例如 max,那么它就会被认为是空值。
{
int max=0,x[5];
for(int a=0;a<5;a++)
{
cout<<"Enter no "<<a+1<<" : ";
cin>>x[a];
if(max<x[a])
{
max=x[a];
}
}
cout<<endl<<max;
}
输出:
Enter no 1 : 1
Enter no 2 : 5
Enter no 3 : 8
Enter no 4 : 7
Enter no 5 : 5
8
当类型 max=0 表示在声明中将 0 分配给 max
它给了我同样的结果,即 null value 等于 0。 如果是,那么 null value 和 0
有什么区别【问题讨论】:
-
“它给了我同样的结果” 什么给了你同样的结果?
-
您的“程序员”以误导的方式混合概念。 C++ 中不存在由于未初始化变量而产生的“空值”。如果
int未初始化,则评估其值会给出未定义的行为——这(松散地)意味着 C++ 标准没有定义会发生什么。您可以想象的任何评估结果在理论上都是可能的(垃圾值、零、重新格式化硬盘驱动器、如果代码是使用不同的编译器构建的则不同的值、随着月相变化的值等)。