a[0]输出和&a[0]一样,它们有什么区别呢,*p可以=a和&a[0]但不能等于a[0]
a[0]和&a[0]不一样,a[0]是数组a的第一个元素的值,&a[0]是数组a的第一个元素的地址,因为&就是取地址符,而对于数组a,他的数组名a这个符号就表示这个数组的第一个元素的地址,所以a实际上和&a[0]是一样的,指针p的值是一个地址,所以p=a || p=&a[0]没问题,等价于*p = a[0]
a[0]在二维数组里相当于&a[0][0],因为数组首地址和首元素地址相等,所以&a[0][0]=&a[0],因此a[0]和&a[0]两者才相等,这是特例。
如果不是二维数组,那么显然两者是两回事