포인터 상수란 포인터 변수의 값이 변경되지 않는 상수를 말합니다. 즉, 한 번 포인터 변수에 할당된 메모리 주소는 변경할 수 없으며, 다른 변수나 상수의 주소를 가리킬 수 없습니다. 포인터 상수는 주로 프로그램에서 고정된 주소를 가리키는 데 사용됩니다.
포인터 상수의 선언과 초기화
포인터 상수를 선언하고 초기화하는 방법은 다음과 같습니다.
const int* ptr; // 값을 변경할 수 없는 포인터
int* const ptr; // 주소를 변경할 수 없는 포인터
const int* const ptr; // 값을 변경할 수 없고 주소도 변경할 수 없는 포인터
위의 예제에서 const 키워드는 변수를 상수로 선언함을 나타냅니다. 첫 번째 선언은 포인터 변수를 통해 가리키는 값 자체를 변경할 수 없게 합니다. 두 번째 선언은 포인터 변수의 주소를 변경할 수 없게 합니다. 세 번째 선언은 값 뿐만 아니라 주소까지 변경할 수 없는 상수 포인터를 선언합니다.
포인터 상수의 예제
아래의 예제를 통해 포인터 상수의 사용법을 이해해보겠습니다.
#include <stdio.h>
int main() {
int num = 10;
const int* ptr = # // 값을 변경할 수 없는 포인터
printf("포인터가 가리키는 값: %d\n", *ptr);
// *ptr = 20; // 에러: 포인터가 가리키는 값은 변경할 수 없음
int num2 = 30;
ptr = &num2; // 포인터는 다른 변수의 주소를 가리킬 수 있음
printf("포인터가 가리키는 값: %d\n", *ptr);
return 0;
}
위의 예제에서는 num이라는 정수 변수를 선언하고 초기값을 할당합니다. 이후 const int* 형식으로 선언된 포인터 ptr을 선언하고 num의 주소를 할당합니다. 이제 ptr은 num을 가리키는 포인터 상수가 됩니다. 포인터 상수의 특성으로 인해 *ptr을 통해 값을 변경하는 것은 불가능합니다. 또한, 다른 변수인 num2의 주소를 ptr에 할당하여 가리킬 수 있습니다.
결론
C 언어에서 포인터 상수는 포인터 변수의 값을 변경할 수 없으며, 한 번 할당된 주소를 변경할 수 없습니다. 포인터 상수는 프로그램에서 고정된 주소를 가리키는 데 사용되며, 안정성과 코드의 가독성을 향상시키는 데 도움이 됩니다. 포인터 상수를 적절히 활용하여 프로그램의 신뢰성을 높이고 버그를 예방할 수 있습니다.
'IT > c언어' 카테고리의 다른 글
C 언어에서 배열을 함수의 인수로 전달하는 방법 (0) | 2023.07.13 |
---|---|
C 언어 포인터 배열 (0) | 2023.07.12 |
C 언어 포인터 산술 연산 (0) | 2023.07.12 |
C 언어 포인터와 배열의 관계 (0) | 2023.07.12 |
C 언어 포인터(Pointers) (0) | 2023.07.12 |
댓글