数组作为形参
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]的实参;
数组不能被拷贝;
数组名会被转换成指针;
以下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]的实参;
相关文章推荐
- DOM对象模型高级编程(增查)
- SDUT1130数据结构上机测试1:顺序表的应用(上一个代码太蠢)
- 帝国cms添加栏目前台显示正常,后台管理栏目中不显示
- 如何在网站中加入百度统计
- 线程安全与共享资源
- linux命令提示符显示当前完整路径
- Error running app: This version of Android Studio is incompatible with the Gradle Plugin used. Try d
- 推荐系统 - 1 - 相似度
- 评价UML工具
- 生成设备节点
- BootStrap 标签页
- Maven搭建 Spring环境
- PHP、JAVA、C#、Object-C 通用的DES加密
- hibernate相关方法
- Storm-1.0.1+ZooKeeper-3.4.8+Netty-4.1.3 HA集群安装
- 收藏网址
- 栈和堆的区别
- 页面跳转(无结果返回值)(内部监听类事件)
- uml啊~~~~~~~~~~~~~~~~~~~~~~~~~
- V6+2C6678调试之电源