#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    //定义数组的特殊方式
    typedef int (Arr)[3];
    Arr arr={1,2,3};

    printf("%d-%d\n",arr,&(arr[0]));
    //数组名等于首元素地址
    printf("%d-%d\n",&arr,&arr+1);
    //&数组名+1=该数组名地址+sizeof(arr)
    printf("%d-%d\n",arr,arr+1);
    //元素地址+1=该元素地址+sizeof(int)

    //声明数组指针
    typedef typedef int (*PArr)[3];
    //数组指针要取数组名地址
    PArr  p=&arr;
    for(int i=0;i<3;++i)
    {
        cout<<(*p)[i]<<endl;
    }
    return 0;
}

这里写图片描述🔗

备份地址: 【数组名地址和首元素地址的辨析