写C++程序函数部分,传递数组往往已造成错误。总结一下
1,数组形参的定义。
如果要编写一个函数,输出int型数组的内容,可以用下面三种方式指定数组形参:
void printValues(int*)
void printValues(int[])
void printValues(int[10])
注意:不需要修改数组形参的元素时,函数应该将形参定义为指向const对象的指针
void f(const int*)
2,多维数组的传递
除了第一维以外的所有维的长度都是元素类型的一部分,必须明确指定:
void printValues(int (*matrix)[10], int rowSize)
void printValues(int matrix[][10], int rowSize)//这个更直观.
//下面是例子
#include<iostream>
using namespace std;
//一维数组形参
/*
void print(int *a)
{
cout<<*a<<" "<<*(a+1)<<" "<<*(a+2)<<endl;
}
*/
/*
void print(int a[])
{
cout<<*a<<" "<<*(a+1)<<" "<<*(a+2)<<endl;
}
*/
/*
void print(int a[3])
{
cout<<*a<<" "<<*(a+1)<<" "<<*(a+2)<<endl;
}
*/
/*
void print(int a[3])
{
cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;
}
*/
/*
void print(int *a)
{
cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;
}
*/
/*
void print(int a[])
{
cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;
}
*/
//上面哪一种都行
int main()
{
int a[3]={2,1,3};
print(a);
return 0;
}
//多维数组作形参
#include<iostream>
using namespace std;
//三选一
//void print(int (*matrix)[3],int rowsize)
//void print(int matrix[2][3],int rowsize)
void print(int matrix[][3],int rowsize)
{
for(int i=0;i<rowsize;i++)
{
for(int j=0;j<3;j++)
{
cout<<matrix[i][j]<<" ";
}
cout<<endl;
}
}
int main()
{
int a[2][3]=
{
1,2,3,
4,5,6
};
print(a,2);
return 0;
}