요즘 정적 키워드 주위에 머리를 쓰려고했는데 여기서 함수 내에서 변수 선언에 정적 키워드를 사용하려고합니다. 그래서 같이 :예기치 않은 정적 카운터 변수 동작
void counter()
{
static int counter = 0; //should be initialized only once and once only
counter++; //increment for every call of this function
}
I 인해 변수가 정적 인에, 그것이 내가 카운터를 인쇄하기로 결정 곳에서 그러므로 함수 외부 살고있는 것으로 이해하고, 그 함수 counter()
가 호출 나에게 횟수를 제공해야 .
1. 나는 무엇을 놓치고하시기 바랍니다되었다 나는 10 번을받을 것으로 예상이 테스트에서
int main()
{
for(unsigned int i = 0; i < 10; i++){
counter();
}
std::cout << counter << std::endl;
return 0;
}
... 대신 코드가 반환 카운트의 수 : 그래서 같이 간단한 테스트를했다 이리?
다음과 같은 "유사한"문제에 대한 다른 제출물을 발견했습니다. static counter in c++ 그러나 대부분 클래스에서 사용되는 정적 키워드를 중심으로 회전합니다.
'std :: cout << counter' 대'std :: cout << counter()'입니다. 인쇄상의 오류 일뿐입니다. –
하지만 void 대신 아무 것도 반환하지 않는'counter() '함수를 출력하지 않고 대신'counter()'함수에 정의 된 정적 변수'counter'를 출력합니다. –
정적 변수'counter' 'counter()'함수 안에서만 접근 할 수있다. 그것의 바깥 쪽 ** 식별자 ** counter는 함수를 참조합니다. –