다음을 통해 공유


방법: 포인터 증가 및 감소(C# 프로그래밍 가이드)

증가 및 감소 연산자인 ++ 및 -- 연산자를 사용하면 pointer-type*형식의 포인터에 대해 sizeof(pointer-type)만큼 포인터 위치를 변경할 수 있습니다. 증가 및 감소 식의 형태는 다음과 같습니다.

++p;
p++;
--p;
p--;

증가 및 감소 연산자는 void* 형식을 제외한 모든 형식의 포인터에 적용할 수 있습니다.

pointer-type 형식의 포인터에 증가 연산자를 적용하면 포인터 변수에 포함된 주소에 sizeof(pointer-type)가 더해집니다.

pointer-type 형식의 포인터에 감소 연산자를 적용하면 포인터 변수에 포함된 주소가 sizeof(pointer-type)만큼 감소합니다.

연산이 포인터의 도메인에서 오버플로되어도 예외는 발생하지 않으며, 연산의 결과는 구현에 따라 다릅니다.

예제

이 예제에서는 포인터를 int의 크기만큼 증가시키면서 배열의 요소를 차례로 표시합니다. 포인터가 증가할 때마다 배열 요소의 내용 및 주소가 표시됩니다.

// compile with: /unsafe
class IncrDecr
{
    unsafe static void Main()
    {
        int[] numbers = {0,1,2,3,4};

        // Assign the array address to the pointer: 
        fixed (int* p1 = numbers)
        {
            // Step through the array elements: 
            for(int* p2=p1; p2<p1+numbers.Length; p2++)
            {
                System.Console.WriteLine("Value:{0} @ Address:{1}", *p2, (long)p2);
            }
        }
    }
}
  

참고 항목

참조

포인터 식(C# 프로그래밍 가이드)

C# 연산자

포인터 조작(C# 프로그래밍 가이드)

포인터 형식(C# 프로그래밍 가이드)

unsafe(C# 참조)

fixed 문(C# 참조)

stackalloc(C# 참조)

개념

C# 프로그래밍 가이드

기타 리소스

형식(C# 참조)