函数是否可以从调用函数的范围更改变量的值?

时间:2016-01-08 12:24:58

标签: c function ansi-c

被调用函数是否可以从调用函数的范围中更改变量的值?

2 个答案:

答案 0 :(得分:1)

请参阅C pointer

    #include <stdio.h>

    void funcA(int* a)
    {
      *a = 2;
    }

    void funcB(void)
    {
       int b = 1;

       printf("-> %d\n", b); /* -> 1 */
       funcA(&b);
       printf("-> %d\n", b); /* -> 2 */
    }

    int main(void)
    {
       funcB();
       return 0;
    }

答案 1 :(得分:0)

这取决于你如何调用该函数。如果你使用按值调用方法然后它不能改变原始值,但如果你使用按引用调用(指针)方法,那么它可以改变提供的参数值代表你想要改变的相同变量。