函数参数为数组

一维数组

函数定义

函数定义时有四种方式:
方式一:

void testfunc(int a[], int size)

方式二:

void testfunc(int* a, int size)

方式三:

void testfunc(int a[10], int size)

方式四:

template<class T>
void testfunc(T a, int size)

方式五:

template<class T>
void testfunc(T& a, int size)

前四种方式,在函数中,a的类型都是int*,sizeof(a)都是4,即一个指针的字节数;第三种方式中,[]中的数其实可以随便填,不会报错说超出数组范围,类型是int*,sizeof(a)是4,且第三种方式一般不要用,而应当将数组长度以参数传入。第四种方式是把实参赋给形参,创建了一个临时的形参对象;第五种方式是引用,故其类型和实参类型一样,是int [5](假设传入的实参是长度为5的int数组),sizeof(a)是5*4=20.
以上所有定义方式中,在函数中对形参的数组进行修改,都会改变实参的数组。

函数调用

调用以数组为参数的函数时只有一种方式:

testfunc(a, size)

二维数组

函数定义

函数定义时有四种方式:
方式一:

void testfunc(int a[][3], int size0, int size1)

方式二:

void testfunc(int(*a)[3], int size0, int size1)

方式三:

template<class T>
void testfunc(T a, int size0, int size1)

方式四:

template<class T>
void testfunc(T& a, int size0, int size1)

前三种方式,在函数中,a的类型都是int(*)[3],sizeof(a)都是4,即一个指针的字节数;第四种方式的类型是int [2][3】(假设传入的实参是长度为【2】【3】的int数组),sizeof(a)是2x3x4=24.
注意,形参定义时一定要写列数,不用写行数。

函数调用

调用以数组为参数的函数时只有一种方式:

testfunc(a, size0, size1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值