Skip to content

二维数组与二级指针

  • 二维数组传参时不可退化成二级指针,但是可以进行如下~~骚~~操作

#include<iostream>
using namespace std;
void f(char **p){
    for(int i=0;i<10;++i){
        for(int j=0;j<10;++j) cout<<(int)(*(p[i]+j))<<" ";
        cout<<endl;
    }
}
char *a[10];
char b[10][10];
int main(){
    for(int i=0;i<10;++i)
        for(int j=0;j<10;++j) b[i][j]=i*10+j;
    for(int i=0;i<10;++i) a[i]=b[i];
    char **p=a;
    f(p);
    return 0;
}
可以用一维指针数组把二维数组存下来,再用二级指针存指针数组的数组名。

所以说指针数组的数组名应该也是个指针。

按理来说二维数组的数组名也是个指向指针数组的指针。~~但是就是不能直接传参给二级指针~~