指针数组:

指向数组首地址的指针。

#include <iostream>
using namespace std;
int main(){
    int x[]={1,2,3,4,5,6,7,8,9,10};
    int x1[]={1,2,3,4,5,6,7,8,9,10};
    int x2[]={1,2,3,4,5,6,7,8,9,10};

    int * a[]={x,x1,x2};
    cout <<"x数组的首地址是:"<<a[0] <<"\nx1数组的首地址是:"<< a[1]<<"\nx2数组的首地址是:"<< a[2]<<endl;
    return 0;
}

运行结果:

x数组的首地址是:0x61fee8
x1数组的首地址是:0x61fec0
x2数组的首地址是:0x61fe98

需要注意:数组本身就是地址(指针),所以不用取地址符 & 也能拿到首地址。
而普通数组的元素需要用 & 取地址。

数组指针:

指针数组的数组元素。

#include <iostream>
using namespace std;
int main(){
    int x[]={1,2,3,4,5,6,7,8,9,10};
    int x1[]={1,2,3,4,5,6,7,8,9,10};
    int x2[]={1,2,3,4,5,6,7,8,9,10};

    int * a[]={&x[2]};
    cout << *a[0] <<endl;
    return 0;
}

运行结果:

3




文章目录