很多时候,函数的形参很容易定义为指针的指针形式(如:int **number),这样可用来表示指向整型指针的指针,但我们传递的可是一个二维数组,其指针该是指向整型数组的指针。这就是容易出现模糊的点。
那如果形参形式是(int **number)这种形式也是有其优点的,从例子中来说明:
先定义实参:
int input[2][2] = {1,2,3,4};
int **p1 = new int*[2];
for(int i=0;i < 2;++i)
{
p1[i] = input[i];
}
delete p1;
这时候我们就将p1做实参传递便可,当我们需要传递什么样的数据时,之后对p1的大小做修改就可以了,这样的灵活型比接下来要将的定义形式要方便得多。
方法2:
修改形参格式,可只传input二维数组名。
如我要传递的input[2][2],那么需要写的形参可为int (*A)[2],注意这里的()不能遗漏,因为[]的优先级大于*,便会变成指向整型指针的指针。这里说的灵活性在于你需要把数组指针的大小定义死。不便于针对多情况做操作。
方法3:int(*A)[2],也可写为:A[][2]。