关于二维数组常见调用方式

在最近几次开发中在二维数组作为形参的是调用中老显卡壳,特整理了下几种常见的调用模式模式(大家从代码中体会吧)!

正确的应用模式一:

void func1(int iArray[ ][10])
{

}

int main()
{
    int array[10][10];
    func1(array);

}

正确的应用模式二(应用一维数组指针作为参数):
void func2(int (*pArray)[10]) //[10] 是指列
{

}

void func2_1(int (*pArray)[ ]) //未亲测
{

}

int main()
{
    int array[10][10];
    func2(array);
}

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

正确的应用模式三(应用二维数组引用作为参数)
void func3(int (&pArray)[10][10])//在此必须指明二个维数
{

}

int main()
{
    int array[10][10];
    func3(array);
}

必须指定两个维度的长度


正确的应用模式四(应用二维指针数组作为参数):
void func4(int (*pArray)[10][10])//必须指定二个维数
{

}

int main()
{
    int array[10][10];
    func4(&array);

}
必须指定两个维度的长度
注:以上四种方法通用,但是数组传递时,仅传值,对传入参数不做改变(个人只用到前两种)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值