将数组作为参数的单参数函数
来源:互联网 发布:韩国的文化知乎 编辑:程序博客网 时间:2024/05/22 01:59
一切尽在代码中:
/* * ===================================================================================== * * Filename: 1.cc * * Description: 一般向数组传递参数都是传数组名(实际上在函数参数中被转换为指向第一个 * 元素的指针)和数组的大小,但是可以向函数只传递一个参数,达到近似或者 * 同样的目的。 * * Version: 1.0 * Created: 2013年04月15日 14时45分42秒 * Revision: none * Compiler: gcc * * Author: XXL * Organization: * * ===================================================================================== */#include <iostream>#define MAXSIZE 10using std::cout;using std::endl;struct Array{int a[MAXSIZE];//这里大有可说!对于类的数组成员,不允许使用初始化列表,因为初始化列表不支持数组下标//运算,故实际上只能在构造函数体中使用赋值,在效率上,对元素类型为内置类型的数组没有//影响,但是对于类类型的数组,要先执行其默认构造函数,然后再进行重载的赋值操作,故效//率会降低。更重要的问题出来了,既然出现了执行默认构造函数,那么这个数组元素(即类类//型的对象)一定要有默认的构造函数,否则会出错。Array(){for (int i = 0; i < MAXSIZE; i++)a[i] = i;}};//算是利用面向对象封装的思想吧,有点耍赖皮的意思。void func1(const Array &array){cout << "func1:" << endl;for (int i = 0; i < MAXSIZE; ++i)cout << array.a[i] << " ";cout << endl << endl;}//利用了C++的语言特性——引用。但是此法的缺陷是,只能向函数传递大小为MAXSIZE的数组void func2(int (&a)[MAXSIZE]){cout << "func2:" << endl;for (int i = 0; i < MAXSIZE; ++i)cout << a[i] << " ";cout << endl << endl;}//这是最好的方法,利用了模板的非类型形参,参考了primer第533页,取消了类型形参T,//此处只用int型。需要特别注意的!!!!! //函数形参必须声明为数组的引用,若是int a[n],则忽略了n,把参数当成指向int的指针,//即int*类型,调用func3(a)时,会提示错误:实参类型为数组类型,而不是int*,// 特注:此方法也可用来实现返回数组长度的方法template<int n>void func3(int (&a)[n]) // not "int a[n]"{cout << "func3:" << endl;for (int i = 0; i < MAXSIZE; ++i)cout << a[i] << " ";cout << endl << endl;}int main(){Array array;array.a[0] = 100;func1(array);int a[MAXSIZE] = {200};func2(a);a[0] = 333;func3(a);return 0;}
- 将数组作为参数的单参数函数
- 将数组作为函数的参数的方法
- 数组作为函数的参数
- 数组作为函数的参数
- 数组作为函数的参数
- 如何将二维数组作为函数参数
- 如何将二维数组作为函数的参数传递
- 如何将二维数组作为函数的参数传递
- 如何将二维数组作为函数的参数传递
- 如何将二维数组作为函数的参数传递
- 如何将二维数组作为函数的参数传递
- 如何将二维数组作为函数的参数传递
- 转:如何将二维数组作为函数的参数传递
- 如何将二维数组作为函数的参数传递
- 如何将二维数组作为函数的参数传递
- 如何将二维数组作为函数的参数传递
- 如何将二维数组作为函数的参数传递
- 如何将二维数组作为函数的参数传递
- Delphi COM 外壳编程(3)
- checkstyle配置文件说明
- 统计算法执行时间-毫秒级
- Linux下网络编程--Socket编程
- .NET 面试题
- 将数组作为参数的单参数函数
- C# 中ref 和out 参数的区别
- 多态中虚函数表的地址是所有对象共享的
- 浅谈网络数据包传递过程中涉及的话题
- Oracle数据库备份和恢复(导出,导入)
- myeclipse web工程多余包部署问题(servlet-api.jar,jsp-api.jar冲突问题解决方法)
- InterviewStreet —— Hanoi Moves
- Starting nagios:CONFIG ERROR! Start aborted. Check your Nagios configuration
- 清除windows网上邻居的登陆帐号密码