多维数组
多维数组实际上是数组的数组的数组的………….
例如:a[3][4],a指向一个维度为4的一维数组,a指向这个一维数组的第一个元素,*a表示这个一维数组的第一个元素。1
2
3
4
5
6
7
8
9
10
11
12
13int a[3][4] , sum = 1;
for(int i = 0 ; i<3 ; ++i){
for(int j = 0 ; j<4 ; ++j){
a[i][j] = sum++;
}
}
for(int i = 0 ; i<3 ; ++i){ //遍历
for(int j = 0 ; j<4 ; ++j){
cout << *(*(a+i) + j) << ' ';
}
cout<<endl;
}
函数的多维数组参数
两种方式:1
2void print(int (*a)[10])
void print(int a[][10]) //实际形参是指向含有10个元素的数组的指针
注意:在函数里的参数不能直接用begin和end1
2
3
4void print(int (*a)[10]){
cout<<end(a) - begin(a); //无法通过编译
cout<<end(*a) - begin(*a); // 10
}
使用范围for循环处理多维数组
1 | int arr[2][4] = {1 , 2 , 3 , 4 , 5 , 6}; |
注意上面代码i使用了引用类型,如果不加&,那么编译器会把 i 变为指针类型int *,这样内层循环就不合法了。
1 | int arr[2][4] = {1 , 2 , 3 , 4 , 5 , 6}; |
