传递一个数组作为参数传递给C中的函数 [英] Passing an array as an argument to a function in C
本文介绍了传递一个数组作为参数传递给C中的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我写了包含数组作为参数的函数,
并通过将阵列的值,如下所示调用它。
I wrote a function containing array as argument, and call it by passing value of array as follows.
void arraytest(int a[])
{
// changed the array a
a[0]=a[0]+a[1];
a[1]=a[0]-a[1];
a[0]=a[0]-a[1];
}
void main()
{
int arr[]={1,2};
printf("%d \t %d",arr[0],arr[1]);
arraytest(arr);
printf("\n After calling fun arr contains: %d\t %d",arr[0],arr[1]);
}
我发现的是,虽然我被传递值调用 ArrayTest中()
功能,原件 INT ARR []
改变。
能否请您解释一下为什么?
Can you please explain why?
推荐答案
在传递一个数组作为参数,这种
When passing an array as a parameter, this
void arraytest(int a[])
装置完全相同
void arraytest(int *a)
所以你的是的修改主的值。
由于历史原因,数组不是一等公民,不能按值传递。
For historical reasons, arrays are not first class citizens and cannot be passed by value.
这篇关于传递一个数组作为参数传递给C中的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文