본문 바로가기
프로그래밍언어/C언어[초급]

[C언어][초급] Chapter51. 포인터 선언과 사용 – 다양한 자료형의 포인터 활용하기

by about_IT 2025. 4. 19.

이전 글에서 포인터가 변수의 주소를 저장하는 변수라는 것을 배웠습니다.
이번에는 다양한 자료형의 포인터 선언과 활용 방법을 더 구체적으로 살펴보겠습니다.


● 기본 포인터 선언

int a = 10;
int *p = &a;

이 코드는 정수형 변수 a의 주소를 정수형 포인터 p에 저장하는 예입니다.


● 다양한 자료형의 포인터

float f = 3.14;
float *fp = &f;

char c = 'A';
char *cp = &c;

각 자료형에 맞는 포인터를 선언하고 사용해야 합니다.


● 포인터가 가리키는 값 변경하기

*p = 20;

p가 가리키는 변수(a)의 값을 직접 바꿉니다. 즉, a = 20과 같은 효과입니다.


● null 포인터

int *ptr = NULL;

아직 어떤 것도 가리키지 않는 포인터는 NULL로 초기화하는 것이 안전합니다.


● 주의할 점

  • 자료형이 다른 변수의 주소를 저장하면 오류가 발생할 수 있습니다.
  • 초기화되지 않은 포인터를 사용하는 것은 매우 위험합니다.

포인터는 어떤 자료형이든 적용할 수 있지만, 자료형에 따라 다르게 선언하고 사용해야 합니다.
데이터 타입을 잘 구분하여 안전하게 포인터를 사용해 보세요.


● 실습 문제

문제 1

실수형 변수 pi = 3.14의 주소를 float 포인터에 저장해보세요.

 

문제 2

문자형 변수 ch = 'Z'를 선언하고 그 값을 포인터로 출력하세요.

 

문제 3

포인터가 가리키는 값을 50으로 바꾸는 코드를 작성하세요.

 

문제 4

포인터를 NULL로 초기화하는 이유는 무엇인가요?

 

문제 5

다음 중 올바른 포인터 선언은?
1) int *p;
2) float p*;
3) char &p;
4) pointer int p;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

▶ 정답 확인하기

정답 1

float pi = 3.14;
float *fp = π

 

정답 2

char ch = 'Z';
char *cp = &ch;
printf("%c\n", *cp);

 

정답 3

int a = 0;
int *p = &a;
*p = 50;

 

정답 4

초기화되지 않은 포인터를 사용할 경우 알 수 없는 메모리를 참조해 오류가 발생할 수 있습니다. 그래서 NULL로 초기화하여 방지합니다.

 

정답 5

정답: 1) int *p;