Member 13346256 Ответов: 4

Пожалуйста, объясните мне, что это за программа,но я не могу найти ответа


я не могу понять, что происходит в этом коде.

[edit]добавлен блок кода-OriginalGriff [/edit]

Что я уже пробовал:

#include<stdio.h>
int x;
int main()
{
	int x=20;
	{
		int x=10;
		change();
		modify();
	}
}
change()
{
	return (x+=20);
}
modify()
{
	return (x+=30);
}

4 Ответов

Рейтинг:
2

OriginalGriff

То change и modify функции работают с глобальной переменной x что вы объявляете непосредственно над main функция:

#include<stdio.h>
int x;
int main()
Внутри main, вы объявляете новую переменную с именем x (дважды), но он недоступен вне метода. Но поскольку вы на самом деле ничего не делаете ни с одним из трех из них (или даже ничего не делаете с возвращаемыми значениями, вы действительно не можете видеть.

И он все равно не будет компилироваться!

Если вы переименуете переменные, это станет немного более очевидным - я также разберусь с ошибками компиляции:
#include<stdio.h>
int global_x;
int change();
int modify();
int main()
    {
	global_x=20;
	int local_x=10;
	printf("%u\n", change());
	printf("%u\n", modify());
	printf("global x: %u, local_x: %u\n", global_x, local_x);
    }
int change()
    {
	return (global_x+=20);
    }
int modify()
    {
	return (global_x+=30);
    }

Беги и посмотри, что получится!


Рейтинг:
2

CPallini

Смотрите, например: С Правилами Рамки [^].


Рейтинг:
1

Patrice T

Цитата:
я не могу понять, что происходит в этом коде.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
0

Zahid Mughal

Это не что иное, как для понимания области действия переменной, которую я опишу ниже.

#include<stdio.h>
int x; // this is global declaration 
int main()
{
	int x=20;    // This variable will be use inside the main()
	{
		int x=10; // It's scope is only in this block can't access outside
		change(); 
		modify();
	}
}
// Whenever these functions invoke, will only use the global x that is declare outside the main
change()  
{
	return (x+=20);
}
modify()
{
	return (x+=30);
}