Я сейчас пытаюсь понять этот код, я наткнулся на сертификационный тест на Си.Правильный вывод кода - 12, 13, 13. Я попытался распечатать значения, прежде чем он вызовет 3 конечных вывода, и я заметил, что причина в том, что существует разница в области видимости между внешним x, объявленным сверху и однимвнутри функции.Мой вопрос: как мне узнать, какие из этих функций обращаются к какому объекту в коде?
#include <stdio.h>
#include <stdlib.h>
int x;
int modifyvalue()
{
return(x+=10);
}
int changevalue(int x)
{
return(x+=1);
}
int main(){
int x=10;
x++;
printf("[1] %d \n\n", x);
changevalue(x);
printf("[2] %d \n\n", x);
x++;
printf("[3] %d \n\n", x);
modifyvalue();
printf("First output:%d \n\n\n",x);
x++;
changevalue(x);
printf("Second output:%d \n\n\n",x);
modifyvalue();
printf("Third output:%dn \n\n\n",x);
}