先说这两个东西的含义
int a[5]
a作为指针时,其类型为 int*(指向单int型的指针),并且对于数组这种情况,它会指向打头那个元素,也就是说a和&(a[0])是等价的
而&a,其类型为int(*) [5](指向int[5]数组类型的指针)/*感谢评论提醒修正*/,指向的就是数组的起始地址
然而,“数组的起始地址”和“数组头一个元素的起始地址”是等值的(自己念叨一下就知道,简直是废话)
所以你的输出得到的是两个相同的数值
当然这两个依然是有区别的,主要区别就是上文所说的类型不同。指针的类型不同主要会影响到*+-这些操作,使用的时候要注意就行了