您的位置:首页 > 其它

参数传递二维数组

2015-08-04 15:27 246 查看
http://blog.csdn.net/yunyun1886358/article/details/5659851

数组名作为形参

[cpp] view
plaincopy

void func1(int iArray[][10])

{



}







int main()

{

int array[10][10];

func1(array);



}

编译通过,注意形参声明一定要给出第二个维度的大小,要不编译不过。

一维数组指针作为形参

[cpp] view
plaincopy

void func2(int (*pArray)[10])

{



}



void func2_1(int (*pArray)[]) //编译通过,无法调用

{



}



int main()

{

int array[10][10];

func2(array);

}

其实二维数组名就是一个指向一维数组的指针,所以这种声明方式OK。必须指定一维数组的长度,如果没有指定的话,函数声明编译通过。但是如果一旦有调用代码,就有编译不通过,因为没有实参类型能匹配int[].

二维数组引用作为形参

[cpp] view
plaincopy

void func3(int (&pArray)[10][10])

{



}



int main()

{

int array[10][10];

func3(array);

}

必须指定两个维度的长度。

二维数组指针作为形参

[cpp] view
plaincopy

void func4(int (*pArray)[10][10])

{



}



int main()

{

int array[10][10];

func4(&array);



}

必须指定两个维度的长度。



以上方法都可以等价使用,对数组来说,没有值传递。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: