1)        大小不同:对数组名求sizeof,结果是数组的占用的内存字节数(维数×每个元素大小)。对指针求sizeof,结果在32位机上是4

2)        数组名是只读指针,其值不可以被修改(不可以作为lvalue)。指针的值可以被修改(通过++--来浏览数组元素)。

3)        数组名被当作函数参数传递时,会被转化为指针。所以函数参数无论是数组形式,还是指针形式,是完全等价的。当数组名被当作函数参数传入后,在函数内求sizeof的结果不是数组占用的内存字节数,而是4

下面两个函数定义完全等价,但func1更好,因为它使调用者很明确地看到需要传入的是一个数组。

void func1(int a[], int size)

{

          for (int i = 0; i < size; i++)

          {

               a[i] = i*i -i;

          }

}

 

void func2(int* a, int size)

{

          for (int i = 0; i < size; i++)

          {

               a[i] = i*i -i;

          }

}

相关文章:

  • 2021-12-15
  • 2021-04-15
  • 2022-12-23
  • 2021-12-19
  • 2021-12-12
  • 2021-08-14
  • 2021-05-29
猜你喜欢
  • 2022-03-09
  • 2021-12-16
  • 2022-12-23
  • 2021-09-26
  • 2021-12-22
相关资源
相似解决方案