Может ли функция изменить значения переменных из области видимости вызывающей функции?

Может ли вызываемая функция изменить значения переменных из области видимости вызывающей функции?

2 ответа

См. Указатель C

    #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;
    }

Ну, это будет зависеть от того, как вы вызываете функцию. если вы используете подход "вызов по значению", он не может изменить исходные значения, но если вы используете подход "вызов по ссылке" (указатели), он может изменить значения, если аргументы представляют те же переменные, которые вы хотите изменить.

Другие вопросы по тегам