寫C++程序函數部分,傳遞數組往往已造成錯誤??偨Y一下
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;
}