好的,我会用两件事来说明这个问题。一,我不像你那么聪明(我真的没有)。其次,我可能已经找到了自己问题的答案,但想要验证。
我正在尝试同时声明多个数组。它看起来像这样。第一个是声明一个数组,而第二个尝试在同一行声明profit_Normal和profit_High:
double [] tradeType_Active = new double [15];
double [] profit_Normal, profit_High = new double [5];
我可以这样做吗?我目前使用这种语法用逗号声明非数组值,如下所示:
double
BUpper,
BUpper_Prev,
BUpper_Prev2;
请稍等片刻告诉我。
答案 0 :(得分:7)
您的代码行
double[] profit_Normal, profit_High = new double[5];
确实声明了多个double[]
。它没有做的是初始化所有这些。它只初始化第二个。
如果您有以下行:
double[] a, b, c, d = new double[5];
发生的事情是您声明4个double
数组的引用。对于您声明的每个数组,您必须对其进行初始化 - 您只对最后一个进行初始化。
要初始化多个阵列,您需要实际初始化它们:
double[] profit_Normal = new double[5], profit_High = new double[5];
数组大小写和double BUpper, BUpper_Prev, BUpper_Prev2;
之间的区别在于数组是引用类型,其默认值为null
且必须初始化,而doulbe
的默认值是0
。
答案 1 :(得分:3)
是的,这是绝对允许的,只要您在声明中保留[]
以表明您正在声明一个数组:
double[] a = new double[4], b = new double[5];
double[]
部分是声明的变量类型。在您的情况下,这是一个double
的数组。
请注意,上述和第二个声明之间的唯一区别是您没有初始化profit_Normal
变量。
答案 2 :(得分:1)
您可以使用当前使用的相同语法,但为了实例化每个语法以及声明它,它看起来像这样,每一个后面都有= new double[5]
:< / p>
double[]
profit_Normal = new double[5],
profit_High = new double[5];