您的位置:首页 > 其它

数组作为形参

2016-07-21 17:23 295 查看
数组的两个特性:

数组不能被拷贝;

数组名会被转换成指针;

以下3中print()函数是等价的,编译器处理对函数的调用时只检查传入的参数是不是const int *;

void print(const int *);

void print(const int [ ]);//对编译器来说是一样的,这里主要是为了告诉使用者,函数的意图的作用于一个数组;

void print(const int [10 ]);//这里的维度表示我们期望数组含有多少个元素,但实际上不一定。

传入数组指针的时候,我们不知道数组的长度。常用的管理指针形参有以下3种技术:

1,使用标记指定数组长度

对于c风格的字符串,因为字符数组最后有个空字符,处理字符串的时候遇到空字符停止就行。

2,使用标准库规范

void print(const int * beg,const int * end);

需要提供数组的首指针和尾后指针;

3,显示的传递一个表示数组大小的形参

也可以用数组引用形参

void print(int (&a)[ 10] );

这时候只接受int[10]的实参;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: