C++里面数组怎么引用

来源:百度知道 编辑:UC知道 时间:2024/06/07 07:12:16
就是说我想把数组传递给某个函数怎么引用
比如我Int main里定义数组int a[100][100];
然后我dfs函数里想把这数组传递进去写成这样dfs(int &a[100][100])是错的,
谁帮我解释下
好像还是不行

可以的,可以将“对数组的引用”当成函数参数——即将整个数组传递给函数,
不用将数组长度作为第二个参数。

具体实现如下:
//用模板实现,Print函数可以打印任意基础类型的任意长度数组。
template<class TYPE, size_t SIZE>
void Print(TYPE (&arr)[SIZE]){
for(int i=0;i<SIZE;++i){
cout<<*(arr+i)<<" ";
}
cout<<endl;
}

int main(){
int iarr[]={1,2,3,4,5};
float farr[]={1.1, 5.5,9.9};
string sarr[]={"first","second"};

Pirnt(iarr);
Print(farr);
Print(sarr);
return 0;
}
//----------------------------------------------------
输出结果:
1, 2, 3, 4, 5
1.1, 5.5, 9.9
first second

C++语法规定:引用方式不能用于数组。如果要达到相当于引用的效果,使用指针。
把dfs(int &a[100][100])改成dfs(int(*a)[100])就可以了。

1、数组名其实等同于一个常量指针,直接使用数组名即可引用。
2、直接用数组名字调用即可。
如:
int a[10]={0,1,2,3,4,5,6,7,8,9];//定义一个数组变量并赋初值
可以用a[3]、a[8]分别调用第3个元素(2)和第8个元素(7),如:
int b;//定义一个整形变量