[c언어] C언어 포인터
C 언어는 포인터를 활용하여 메모리 주소를 직접 조작할 수 있는 기능을 제공합니다. 포인터는 메모리 위치를 저장하는 변수로, 메모리 주소에 직접 접근하는 방법을 제공합니다.
포인터란 무엇인가요?
포인터는 다른 변수의 메모리 주소를 저장하는 변수입니다. 이를 통해 메모리에 저장된 값에 직접 접근할 수 있습니다.
int num = 10;
int *ptr = # // 포인터 ptr이 num의 메모리 주소를 가리킴
위의 예시에서 int *ptr
은 정수형 변수의 주소를 저장하기 위한 포인터를 나타냅니다. &
연산자는 변수의 주소를 가져오는 연산자이며, ptr
은 num
변수의 주소를 저장하게 됩니다.
포인터의 활용
포인터는 메모리 주소를 통해 데이터에 접근하고 수정할 수 있는 강력한 기능을 제공합니다. 예를 들어, 함수를 통해 값을 반환하거나 메모리를 효율적으로 활용하는 등의 용도로 활용됩니다.
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 언어 포인터를 참고하세요.