从main传递数组并通过另一个函数修改它

时间:2013-12-07 05:09:08

标签: c arrays pointers

所以我的问题是,如果我有以下代码

main(){
char arr[1][3];
foo(arr);
}

void foo(char arr1[1][3]){

arr1[0] = "AB\0";
}

这是否意味着来自main的arr中的值也会被修改为“AB \ 0”?

2 个答案:

答案 0 :(得分:3)

尝试检查此堆栈溢出问题和答案,这是一个古老的问题

Passing an array by reference in C?

答案 1 :(得分:0)

为什么不亲自测试一下?

#include <stdio.h>

void foo(char arr[]);

int main(int argc, char **argv)
{
    char arr[5] = "test";
    printf("%s\n", arr);

    foo(arr);
    printf("%s\n", arr);

    return 0;
}

void foo(char arr[])
{
    arr[0] = 'p';
}