相关疑难解决方法(0)

在C中通过引用传递数组

我是C的新手,我有一个疑问.

由于C函数创建了它的参数的本地副本,我想知道为什么以下代码按预期工作:

void function(int array[]){

    array[0] = 4;
    array[1] = 5;
    array[2] = 6;   
}

int main(){

    int array[] = {1,2,3};

    function(array);

    printf("%d %d %d",array[0],array[1],array[2]);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

线路输出为4 5 6.

为什么这样做有效而以下情况不然?

void function(int integer){

    integer = 2;
}

int main(){

    int integer = 1;

    function(integer);

    printf("%d",integer);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,输出仅为1.

简短版本:为什么函数可以修改父变量的值,如果它们作为数组传递?

谢谢你们!

c arrays reference function

18
推荐指数
1
解决办法
7万
查看次数

标签 统计

arrays ×1

c ×1

function ×1

reference ×1