阵列初始化 - 页 3

 
MetaNt:


这让我想起了一个矩阵...

对于订单数组,你说0=买入,1=卖出

那么我应该如何初始化这个数组呢?

OrdersArray[10,2] = {.......}{...}。?

我认为它和矩阵完全一样

你用一组大括号和尽可能多的值来初始化它,或者只用一个值来表示整个数组,然后再添加实际值。

是的,我说买入和卖出是0和1,因为当你处理订单时,订单类型是那些整数值。

大多数时候,你会发现最简单的方法是将整个数组初始化为一个单一的值(只是因为你必须初始化它),然后再添加值。

ordersarray[10,2] = {0}。

当你使用数组的for循环时,一切都会变得有意义。

 
SDC:

我认为它和矩阵完全一样

你用一组大括号和尽可能多的值来初始化它,或者只用一个值来表示整个数组,然后再添加实际值。

是的,我说买入和卖出是0和1,因为当你处理订单时,订单类型是那些整数值。

大多数时候,你会发现最简单的方法是将整个数组初始化为一个单一的值(只是因为你必须初始化它),然后再添加值。

ordersarray[10,2] = {0}。

当你使用数组的for循环时,一切都会变得有意义。


我注意到一些事情

Myarray [3][4] 是多维的,但是看

Myarray [3][4] = {x,y,z}。

它是用一维的形式来定义的,也就是说,对于其中一个维度只有一个值是有效的,即使大小允许有4个,所以Myarray [2,0]=z,但是Myarray[2,1]=0,Myarray[0,2]也=z。

 
SDC:

我认为它和矩阵完全一样

你用一组大括号和尽可能多的值来初始化它,或者只用一个值来表示整个数组,然后再添加实际值。

是的,我说买入和卖出是0和1,因为当你处理订单时,订单类型是那些整数值。

大多数时候,你会发现最简单的方法是将整个数组初始化为一个单一的值(只是因为你必须初始化它),然后再添加值。

ordersarray[10,2] = {0}。

当你使用数组的for循环时,一切都会变得有意义。


我注意到一些事情

Myarray [3][4] 是多维的,但是看

Myarray [3][4] = {x,y,z}。

它是用一维的形式来定义的,也就是说,对于其中一个维度只有一个值是有效的,即使大小允许有4个,所以Myarray [2,0]=z,但是Myarray[2,1]=0,Myarray[0,2]也=z。

 
SDC:

"在初始化序列中可以省略一个或几个常数。在这种情况下,相应的数字类型的数组元素被初始化为0,字符串类型的数组元素被初始化为字符串值""(不带空格的引号),即空行(不应该与空格混淆)。"

然后显示了这个例子。

string Mas_s[4] = {"a","b", ,"d"};           // String array

这可能是有意为之。

string Mas_s[4] = {"a","b","","d"};           // String array

是的,在第一个例子中,Mas_s[2]将被初始化为0

      string A[4] = {"a","b", ,"d"};
      string letters = "Array A =";           
      for(int x = 0;x<4;x++)
      letters +=A[x];
      Print(letters);
      
      string B[4] = {"a","b","" ,"d"};
      letters = "Array B =";           
      for(x = 0;x<4;x++)
      letters +=B[x];
      Print(letters);
      
      string C[4] = {"a","b"," " ,"d"};
      letters = "Array C =";           
      for(x = 0;x<4;x++)
      letters +=C[x];
      Print(letters);

结果


13:03:01 aaa CADJPY,H1: 阵列A =ab0d

13:03:01 aaa CADJPY,H1: 数组B =abd

13:03:01 aaa CADJPY,H1: 数组C =ab d

 
MetaNt:


我注意到一些事情

我的数组[3][4]是多维的,但看起来

Myarray [3][4] = {x,y,z}。

它是用一维的形式来定义的,也就是说,对于其中一个维度只有一个值是有效的,即使大小允许4个,所以Myarray [2,0]=z,但是Myarray[2,1]=0,Myarray[0,2] 也=z。

是的,如果你用这种方式填充数组,它会从第一个维度开始依次填充。
 
SDC:
是的,如果你用这种方式填充数组,它会从第一维开始依次填充


所以int myarray[2][2] = {1,2}会填满

myarray[0,0]=1

myarray[1,0]=2

myarray[0,0]=1

myarray[0,1]=2

你怎么能用一个循环来做这个事情呢?

你会根据数组的大小来使用变量i和j的限制吗?

 

所以它应该以这样的顺序来填充它

[0,0]

[0,1]

[0,2]

[0,3]

那么

[1,0]

[1,1]

[1,2]

[1,3]

那么

[2,0]

[2,1]

[2,2]

[2,3]

 
MetaNt:


所以,int myarray[2][2] = {1,2}将填补

myarray[0,0]=1

myarray[1,0]=2

myarray[0,0]=1

myarray[0,1]=2

你怎么能用一个循环来做这个事情呢?

你会使用变量i和j,并根据数组的大小进行限制吗?

是的,你可以用一个变量来代替尺寸常数

for(int i=0; i<2, i++)

{myarray[i,0] = ?//会在第1个维度上增加数值

}

 

你也可以用另一种方式来做

for(i=0; i<2; i++)

{myarray[0,i] = ?

}

 
SDC:

你也可以用另一种方式来做

for(i=0; i<2; i++)

{myarray[0,i] = ?

}


谢谢你的澄清,它确实感觉很像矩阵。