a[i] 与 *(a+i) 是等价的。
事实上在计算a[i]的值时,c语言首先将前者转换为后者形式,
而且,通常而言,用指针编写的程序要比用数组下标编写的程序执行速度快,(为什么?)
因此,应该尽量用*(a+i)代替a[i],
但是,我们必须记住
指针是一个变量
在c语言中 pa = a 和 pa ++ 都是合法的(pa与a 是指针变量),
但数组名不是变量,对数组名进行以上操作是非法的。
当把数组名传递给一个函数参数时,
实际上是 用 局部变量 保存了一个 常量,
arr ---------> int *p
在函数定义中 char s[] 与 char *s 是完全等价的。
我们通常更习惯于使用后一种形式,因为它比前者更直观地表明了该参数是一个指针。