小编m_b*_*tto的帖子

将数组传递给C中的函数

我只是想知道为什么,当我将数组传递给函数时,例如,初始化它们时,它们实际上是初始化的.由于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)

那么为什么阵列不同呢?

c arrays pointers

3
推荐指数
1
解决办法
103
查看次数

标签 统计

arrays ×1

c ×1

pointers ×1