为什么C把数组参数当作指针?

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

null
  • 提高效率 密码
  • 节省时间

在内存和时间方面,复制阵列数据的效率很低;大多数情况下,当我们传递一个数组时,我们的目的只是引用我们感兴趣的数组,而不是创建数组的副本。

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

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

为了便于阅读,最好使用更准确的语法。

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

例子: 在本例中,数组参数被用作指针。

C

// 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" , sum);
}
void findSum2( int * arr)
{
int sum = 0;
for ( int i = 0; i < 5; i++)
sum = sum + arr[i];
printf ( "The sum of the array is: %d " , 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: 15The sum of the array is: 15 

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享