a[i] 与 *(a+i) 是等价的。

事实上在计算a[i]的值时,c语言首先将前者转换为后者形式,

而且,通常而言,用指针编写的程序要比用数组下标编写的程序执行速度快,(为什么?)

因此,应该尽量用*(a+i)代替a[i],

 

但是,我们必须记住 

指针是一个变量

在c语言中 pa = a 和 pa ++ 都是合法的(pa与a 是指针变量),

但数组名不是变量,对数组名进行以上操作是非法的。

 

当把数组名传递给一个函数参数时,

实际上是 用 局部变量 保存了一个 常量,

arr  --------->  int *p 

 

在函数定义中 char s[] 与 char *s 是完全等价的。

 

我们通常更习惯于使用后一种形式,因为它比前者更直观地表明了该参数是一个指针。

相关文章:

  • 2021-12-05
  • 2021-07-19
  • 2021-12-27
  • 2021-12-27
  • 2022-01-13
  • 2021-04-25
  • 2022-12-23
  • 2021-10-20
猜你喜欢
  • 2022-01-29
  • 2021-12-03
  • 2021-11-27
  • 2021-08-23
  • 2021-06-29
  • 2021-07-22
  • 2022-01-11
相关资源
相似解决方案