선생님 안녕하세요!
for(① 초기화식 ② 조건식 ④증감식)
{
③ 실행문장;
}
① → ② → ③ → ④ → ② → ③ → ④ 순서로 반복되는데 이때 ③번에서 선언된 변수는 ③번이 실행될 때마다 다시 선언되는 것으로 알고 있습니다.
그런데 실제로 확인해보니까 그냥 고정 주소를 사용하고 있더군요.
아래 제가 작성한 코드를 보시면 var의 메모리 주소가 11923652로 고정되어 있습니다.
혹시 변수가 다시 선언되는 것은 맞지만 가비지 컬렉터에 의해서
for문이 종료될 때까지 동일한 주소를 사용하는 것인지 궁금합니다..
static void Main(string[] args)
{
unsafe
{
int* pointer;
int* pointer2;
Queue<int> _sendQueue = new Queue<int>();
for (int i = 0; i < 3; i++)
{
_sendQueue.Enqueue(i);
}
for (int i = 0; i < 3; i++)
{
int var = _sendQueue.Dequeue();
pointer = &var;
Console.WriteLine($"{var}, {(int)pointer}");
}
}
}
[출력]
0, 11923652
1, 11923652
2, 11923652
[최초 등록일: ]
[최종 수정일: 12/25/2020]