C++Primer 6.2节——参数传递 续数组形参

C++Primer 6.2节——参数传递 续数组形参

1、数组形参
①数组的两个性质:不允许拷贝数组以及使用数组时通常会将其转换成指针。
②当给函数传递一个数组时,实际上传递的是指向数组首元素的指针。
③数组形参的定义:
(1)void print(const int*);
(2)void print(const int[]);
(3)void print(const int[10]);
以上三个函数都是等价的,每个函数的形参类型都是const int*。

④表示数组大小的三种方式
(1)使用标记指定数组长度。
条件:使用这种方法的数组本身必须包含一个结束标记,典型事例是C风格字符串。C风格字符串存储在字符数组中,以空字符/0结束。

(2)使用标准库规范
方法:传递指向数组首元素和尾后元素的指针。
条件:使用标准库中的begin和end函数提供所需要的指针。

(3)显示传递一个表示数组大小的形参
方法:专门定义一个表示数组大小的形参,数组大小的类型是size_t。

⑤数组形参和const
当函数不需要对数组元素执行写操作的时候,数组形参应该是指向const的指针。
⑥数组引用形参
函数的形参是对数组的引用类型,如:
void print(int (&arr)[10]); //形参是一个对具有10个int型元素的数组的引用。
⑦传递多维数组
(1)当将多维数组传递给函数时,真正传递的是指向数组首元素的指针,因为多维数组的首元素也是数组,所以传递的是指向数组的指针。
(2)数组的第二位(以及后面的所有维度)的大小都是数组类型的一部分,不能省略。
(3)传递多维数组的函数的定义方式:
Ⅰ、void print(int (*matrix)[10],int rowsize);
Ⅱ、void pirnt(int matrix[][10],int rowsize); //这两个函数都是等价的,第一个维度通常会被省略掉。它们的形参都是指向含有10个整数的数组的指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值