C++ 二位数组做参数传递
指针的强大功能,,,,简直牛逼!!!
#include<iostream> #include<cstdio> #include<map> using namespace std; void func1(int arr[][5])//传递数组,需生命数组第二维的大小 { for(int i=0;i<5;i++){ for(int j=0;j<5;j++)cout<<arr[i][j]<<" "; cout<<endl; } } void func2(int (*arr)[5])//传递数组指针,仍需生命第二维的大小 { for(int i=0;i<5;i++){ for(int j=0;j<5;j++)cout<<arr[i][j]<<" "; cout<<endl; } } void func3(int *arr)//传递指针,指针指向首元素即可,但维数组的形状需用其他参数来证明 //传参时需要强制转换类型 { for(int i=0;i<5;i++){ for(int j=0;j<5;j++)cout<<*(arr+i*5+j)<<" "; cout<<endl; } } int main() { int arr[5][5]; int ins=0; for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ arr[i][j]=++ins; } } func1(arr); func2(arr); func3((int *)arr); return 0; }