이전 글에서 포인터가 변수의 주소를 저장하는 변수라는 것을 배웠습니다.
이번에는 다양한 자료형의 포인터 선언과 활용 방법을 더 구체적으로 살펴보겠습니다.
● 기본 포인터 선언
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;
'프로그래밍언어 > C언어[초급]' 카테고리의 다른 글
[C언어][초급] Chapter53. 포인터와 문자열 – 문자열을 더 유연하게 다루는 방법 (0) | 2025.04.19 |
---|---|
[C언어][초급] Chapter52. 포인터와 배열 – 배열의 시작 주소와 포인터의 관계 (0) | 2025.04.19 |
[C언어][초급] Chapter50. 포인터란? – 메모리 주소를 다루는 핵심 개념 (0) | 2025.04.19 |
[C언어][초급] Chapter49. 문자열 함수 – strcmp 함수로 문자열 비교하기 (0) | 2025.04.19 |
[C언어][초급] Chapter48. 문자열 함수 – strcat 함수로 문자열 이어 붙이기 (0) | 2025.04.19 |