假设我初始化了一个二维数组:
double name[2][2];
我有打印出来的程序;它具有以下输出: 0.0 0.0 0.0 0.0 。它不应该得到一个随机值吗?如果我没有应用任何存储类,为什么它会被初始化为 null?例如,一维接收随机值。
假设我初始化了一个二维数组:
double name[2][2];
我有打印出来的程序;它具有以下输出: 0.0 0.0 0.0 0.0 。它不应该得到一个随机值吗?如果我没有应用任何存储类,为什么它会被初始化为 null?例如,一维接收随机值。
首先,在您的声明示例中,您没有以任何方式初始化数组。
其次,一个没有显式初始化器声明的数组是否以某种方式自行初始化取决于它声明的上下文。这个上下文将决定你的对象的存储类,即使你没有明确地“应用任何存储类”。您没有提供任何上下文。
所以
第三,如果一个对象没有被初始化,这根本不意味着它必须接收一些“糟糕”的值。纯属巧合,您未初始化的对象最终可能会被空值填充。零与任何其他不可预测的值一样不可预测。
此外,没有人禁止特定实现无一例外地将所有变量设置为零(无论以何种方式完成)。从语言的角度来看,未初始化的对象仍将包含不可预测的值。(还要注意,这样一个不可预测的值不仅本身不可预测,而且也无法保证稳定性:连续读取未初始化的对象可能会“看到”其中的不同值。)
因此,数组的二维性在这里不起作用。