출력이 10이 될 것으로 예상합니다. 재미있는 함수를 호출하는 동안 내 지식에 따라 을 얻습니다. 전역 변수를 가져와야합니다. ??글로벌 변수 유효성 검사?
#include <iostream>
using namespace first;
int var = 0;
void fun()
{
cout << var;
}
int main()
{
var = 1;
cout << var;
fun();
}
출력이 10이 될 것으로 예상합니다. 재미있는 함수를 호출하는 동안 내 지식에 따라 을 얻습니다. 전역 변수를 가져와야합니다. ??글로벌 변수 유효성 검사?
#include <iostream>
using namespace first;
int var = 0;
void fun()
{
cout << var;
}
int main()
{
var = 1;
cout << var;
fun();
}
될 것입니다. 그것이 출력으로 11을 얻는 이유입니다.
main() 내부의 var는 어떻게 전역 var을 업데이트 할 수 있습니까 ?? – user3127386
@ user3127386'main()'*의'var '은 * 전역 변수입니다. – juanchopanza
@ juanchopanza 그래서 모든 유형의 로컬 범위에서 전역 변수를 업데이트 할 수 있습니까? – user3127386
var
만 신고하십시오. 글로벌 변수를 로컬 선언으로 쉐도 잉하면 로컬 변수가 사용됩니다.
예를 들어 섀도 잉 작동 원리에 대한 정보는 this StackOverflow post을 참조하십시오.
int main()
{
int var=1;
cout<<var;
fun();
}
현재로서는 main()
에 범위를 지정하는 대신 글로벌을 수정하는 것입니다.
그런 다음 출력은 당신이 두 번 'VAR'을 인쇄 한 후 1 'VAR'의 가치를 재 할당되고
10
var
에 1
을 할당 한 후 동일한 변수를 두 번 인쇄합니다. 두 개의 다른 변수를 만들지는 않지만 변수 값을 변경하는 것입니다.
게시물을 올바르게 이해할 수 있는지 모르겠지만 다른 변수를 선언하지 않고 전역 변수의 값을 변경합니다. 위의 특정 경우에는 사용 된 특정 값 때문에 11이 표시되지 않습니다. –
예, var = 1 이전에 int가 없다는 것을 알지 못했습니다. – enedil
바르 = 0 다음 VAR = 1 개 인쇄 var에 두 번 11
이 질문은 답변보다 더 좋은 의견이라고 생각합니다. 그러나 답변을 작성하기 위해 더 많은 정보를 추가 할 수는 있습니다. –
가 왜'기대 출력 10'? –
예, 수정 한 전역 변수를 사용합니다. – chris
왜 10을 얻지 않습니까? – user3127386