其实你明白原理就觉得很简单了。
首先,你要知道scanf传入的必须是指针,也就是地址。
比如int a, 就要写成&a。
但是如果是数组,数组符号表示的就是数组的首地址(更准确的说,数组本身表示的是数组首元素的地址)。
int a[10];a就表示a[0]的地址;那a[3]的地址呢?
可以这样,&a[3]; 这就是加&的数组,如果不加呢,可以这样(a+3)就可以了,a是a【0】的地址,那么a+3就是a[3]的地址。
所以你要弄明白他的传入的到底是谁的地址,就可以了,加不加只是个实现方式不一样而已。