我只是想知道为什么,当我将数组传递给函数时,例如,初始化它们时,它们实际上是初始化的.由于inic函数中的变量完全独立于main函数中的变量(不涉及指针),inic函数如何能够初始化数组v的值?inic函数里面的数组不是一个单独的东西吗?
#include <stdio.h>
void inic(int s[], int n)
{
int i;
for(i=0; i<n; i++)
s[i]=0;
}
main()
{
int v[10];
int x[20];
inic(v, 10);
inic(x, 20);
}
Run Code Online (Sandbox Code Playgroud)
如果我也展示这个例子可能会更清楚:
#include <stdio.h>
void value(int n)
{
n = 2;
}
main()
{
int x=1;
value(x);
printf("X is %d\n", x); //The output would be 1. The function *value* doesn't affect X.
}
Run Code Online (Sandbox Code Playgroud)
那么为什么阵列不同呢?