1. 主页
  2. 文档
  3. C语言教程
  4. C语言指针
  5. 为什么 C 将数组参数视为指针

为什么 C 将数组参数视为指针

在 C 中,数组参数被视为主要指向的指针,

  • 提高代码效率
  • 为了节省时间

复制数组数据在内存和时间上都是低效的;大多数时候,当我们传递一个数组时,我们的意图只是引用我们感兴趣的数组,而不是创建数组的副本。

以下两个 fun() 的定义看起来不同,但对于编译器来说,它们的含义完全相同。 

void fun(int arr[]) { 
// body
}
// This is valid
void fun(int *arr) { 
// body
}
// This is valid too

最好使用更准确的语法以提高可读性。

注意:如果传入的指针确实是整个数组的基地址,那么我们应该使用 [ ]。

示例:在此示例中,数组参数用作指针。

// C Program to demonstrate that C treats array parameters
// as pointers
#include <stdio.h>

void findSum1(int arr[])
{
int sum = 0;
for (int i = 0; i < 5; i++)
sum = sum + arr[i];
printf("The sum of the array is: %d\n", sum);
}

void findSum2(int* arr)
{
int sum = 0;
for (int i = 0; i < 5; i++)
sum = sum + arr[i];
printf("\nThe sum of the array is: %d \n", sum);
}

// Driver code
int main()
{
int arr[5] = { 1, 2, 3, 4, 5 };

findSum1(arr);
findSum2(arr);
return 0;
}

输出

The sum of the array is: 15

The sum of the array is: 15
这篇文章对您有用吗?