[c언어] C언어 포인터

C 언어는 포인터를 활용하여 메모리 주소를 직접 조작할 수 있는 기능을 제공합니다. 포인터는 메모리 위치를 저장하는 변수로, 메모리 주소에 직접 접근하는 방법을 제공합니다.

포인터란 무엇인가요?

포인터는 다른 변수의 메모리 주소를 저장하는 변수입니다. 이를 통해 메모리에 저장된 값에 직접 접근할 수 있습니다.

int num = 10;
int *ptr = # // 포인터 ptr이 num의 메모리 주소를 가리킴

위의 예시에서 int *ptr은 정수형 변수의 주소를 저장하기 위한 포인터를 나타냅니다. & 연산자는 변수의 주소를 가져오는 연산자이며, ptrnum 변수의 주소를 저장하게 됩니다.

포인터의 활용

포인터는 메모리 주소를 통해 데이터에 접근하고 수정할 수 있는 강력한 기능을 제공합니다. 예를 들어, 함수를 통해 값을 반환하거나 메모리를 효율적으로 활용하는 등의 용도로 활용됩니다.

void swap(int *x, int *y) {
    int temp = *x;
    *x = *y;
    *y = temp;
}

위의 예시에서 swap 함수는 두 개의 포인터를 매개변수로 받아들여, 해당 주소에 저장된 값을 서로 교환합니다.

포인터 연산

포인터에는 산술 연산을 할 수 있으며, 배열과 함께 사용될 때 유용하게 활용됩니다.

int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // 배열의 첫 번째 요소를 가리키는 포인터

printf("%d", *ptr); // 1을 출력
printf("%d", *(ptr + 2)); // 3을 출력

위의 예시에서 ptr + 2는 배열의 세 번째 요소를 가리키게 됩니다.

결론

C 언어의 포인터는 메모리 주소를 효율적으로 관리하고 데이터에 접근하는 데 사용되는 강력한 기능을 제공합니다. 포인터의 활용은 강력하지만, 잘못 사용할 경우 프로그램의 안정성을 해칠 수 있으므로 신중하게 다루어져야 합니다.

더 많은 자세한 내용은 C 언어 포인터를 참고하세요.