int *a 和 int a[ ]

int *a 和 int a[ ]_第1张图片

拿着邓公的数据结构复习

看到形参用的是int *a,之前鄙陋的以为,传数组不都应该是int a[]吗?

先说结论: 做形参的时候,int *aint a[]无任何区别。

  • int *a的 a 是一个指针变量,可以对a赋其他值,或者a++,a-- 的运算。
  • int a[]的 a 是一个指针常量

指针与数组的区别:

  1. 指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。

  2. 数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是"可变",所以我们常用指针来操作动态内存。

  3. 当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。

你可能感兴趣的:(数据结构,数组,指针)