2024年6月7日发(作者:)
c++中关于数组作为函数参数并传递数组元素个数的几种有效方法的
讨论
//由于数组的元素个数默认情况下是不作为实参内容传入调用函数的,本程序用来讨论有此带来的
//相关问题,以及解决问题方法,即给调用函数传递数组的元素个数的几种有效方法并实现它
#include
#include
using namespace std;
void PutArray1(int *p,int length)
{
for(int ix=0;ix cout< cout< } void PutArray2(int p[],int length) { for(int ix=0;ix cout< cout< } void PutArray3(int p[10]) { for(int ix=0;ix<9;ix++) cout< cout< } void PutArray4(int (&p)[10])//注意对int数组的引用是int (&a)[10],而不是int & a[10],否则有编 译错误 { for(int ix=0;ix<9;ix++) cout< cout< } void PutArray5(vector { vector vector int size= (); cout<<"使用两个迭代器来输出int向量"<<"n"< for( vector cout<<*iter<<"t"; cout< cout<<"使用向量参数传进来的元素规模输出int向量n"< for(int ix=0;ix cout< cout< } void main() { int a[10]={0,1} ,b[8]={0,1}; vector vector cout<<"数组a[10]调用函数PutArray1的结果为:n"< PutArray2和PutArray3的第一次输出的输出结果可以 PutArray1(a,10); cout<<"数组a[10]调用函数PutArray2的结果为:n"< 和PutArray2(int p[])以及PutArray3(int p[10]这 PutArray2(a,10); cout<<"数组a[10]调用函数PutArray3的结果为:n"< 都是int *p;他们的元素个数都不作为实参内容传进 PutArray3(a); cout<<"数组b[8]调用函数PutArray3的结果为:n"< PutArray3(b); cout<<"向量verc1调用函数PutArray5的结果为:n"< PutArray5(verc1); cout<<"向量verc2调用函数PutArray5的结果为:n"< PutArray5(verc2); } /* (1)对于数组a[10]作为实参,对所有的以数组作为实参的函数的调用得用PutArray3(a), 而不能用PutArray3(a[10])和PutArray(a[]),否则出现编译错误,
发布者:admin,转转请注明出处:http://www.yc00.com/news/1717736200a2742741.html
评论列表(0条)