我目前正在学习C函数如何能够接受多维数组,方法是遵循一书中的处理方法。
在这本书中,作者提到处理多维数组的函数可以声明为.
虚函数( int (* pt)4 );
或者,如果(并且只有当) pt是函数的正式参数,则可以如下所示:
虚函数( int );
我理解在C中,传递给函数的数组将衰减为指向相应类型的指针。因此,pt in int pt[][4]将衰减为int (* pt)[4],这是一个指向4 ints数组的指针。
但我不明白为什么这种行为只有在‘pt是函数的一个形式参数’时才会发生。这意味着什么?为什么会这样?
由于服务器的版本,我试图将PHP多维数组转换为javascript数组,而不使用json编码器。
多维数组的例子:
Array (
[0] => Array (
[0] => 18
[1] => Région Grand EST
[2] => GE )
[1] => Array (
[0] => 17
[1] => Région Grand OUEST / NORD
[2] => GO N
有没有办法在不知道列数的情况下将多维数组传递给函数……我的意思是,假设我想打印一个多维数组,比如说a[][9]和b[][3]。如果我创建了一个公共函数,比如print。
// I have to specify the no of columns right and since
// the no of columns should be same for both actual and
// formal arguments
void print(int a[][])
我必须为不同的多维数组创建不同的函数。应该有一些绕过它的方法。
如何传递未绑定的多维数组?
我不能理解下面的多维代码。有没有人能给我澄清一下?
int[][] myJaggedArr = new int [][]
{
new int[] {1,3,5,7,9},
new int[] {0,2,4,6},
new int[] {11,22}
};
我可以知道它和下面的代码有什么不同吗?
int[][] myArr = new int [][] {
{1,3,5,7,9},
{0,2,4,6},
{11,22
为什么我们需要二维或多维阵列?
如果我们想要一系列相同类型的连续元素,可以通过简单的一维数组来实现。与int[] a = new int[15625]类似,int [][][] b = new int[25][25][25]将分配空间15625元素,int [][][] b = new int[25][25][25]也将分配空间15625元素
如果事情可以用1d来实现,我们为什么需要它们?