C++函数的数组形参
来源:互联网 发布:淘宝窗帘店 编辑:程序博客网 时间:2024/05/21 22:47
1 不允许将实参数组拷贝给形参
不能将数组的内容拷贝给其它数组作为其初始值,也不能用数组为其它数组赋值。
int a[] = {0, 1, 2};int a2[] = a;//错误,不允许使用一个数组初始化另一个数组
a2 = a;//不能把一个数组直接赋值给另一个数组
所以,当数组作为函数的实参时,不能将其元素拷贝给形参。
2 将数组名转换为指针
在很多用到数组名字的地方,编译器都会自动地将其替换为一个指向数组首地址的指针。
string nums[] = {“one”, “two”, “three”};string* p = nums;此时,编译器将string数组名称nums用指向该数组首地址的指针代替,该指针可以看成是一个临时对象,之后将该临时对象赋值给p,此时指针p中的内容即为nums数组的首地址。
3 声明含有数组形参的函数
尽管不能以值传递的方式传递数组,但是可以把形参写成类似数组的形式:
void print(const int*);void print(const int[]);void print(const int[10]);以上三个函数是等价的,可以将数组作为print()函数的实参。
int a[] = {0, 1, 2};print(a);
4 数组引用形参
引用形参绑定到实参上,也就是绑定到数组上。
其定义格式为
void print(int (&arr)[10]);此时,数组的维数也是参数类型的一部分,必须要指定数组维数,
void print(int (&arr)[]);//编译能通过,但是会有提示信息,参数类型涉及未知绑定数组的引用还需要注意的是,&arr两端的括号也不能少。
void print(int &arr[]);//表示print()函数的形参时int&的数组,而不是int数组的引用;
当调用包含数组引用形参的函数时,实参的维数必须与形参的维数一致。
int a[] = {0, 1, 2};print(a);//无法将参数 1 从“int [3]”转换为“int (&)[10]”
阅读全文
0 0
- 每日一C,指向一维、二维数组的指针及数组作为函数形参的思考(二)
- c中二维数组的初始化,访问,赋值,函数形参的使用方式
- C/C++ 中函数形参传递二维数组的方法
- C语言 指针和指针数组作main函数的形参
- C语言中实参和形参问题&&函数使用数组作为参数的问题
- C/C++中数组名作为函数形参
- C语言获得数组长度的函数
- C语言的函数指针数组
- C语言的数组与函数
- c语言复制数组的函数
- 强化C数组作为函数参数-多维数组的本质
- 数组作为函数的形参
- 数组的输入输出 main函数形参
- 函数、数组和指针的形参
- C++中函数的数组形参
- C++中函数的数组形参
- C++函数的数组形参
- [C]函数指针数组
- 代理模式
- tensorflo读取数据之dataset
- eclipse+maven+selenium 如何启动谷歌浏览器
- 超级书架
- java、Data类
- C++函数的数组形参
- idea error:java: 无效的源发行版: 8
- mysql--16131order by
- php取出mysql数据时乱码
- 通俗讲解单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系!
- 在Python2.x和Python3.x中dict.keys()的差异
- 文章标题
- 四书五经之大学
- C++中char *和char []的区别