void 포인터(void pointer)는 C언어에서 데이터 타입이 없는 포인터입니다. 다른 포인터 타입과 달리 void 포인터는 어떤 타입의 주소도 가질 수 있으며, 필요한 경우 타입 캐스팅을 통해 다른 포인터 타입으로 변환될 수 있습니다.
void 포인터의 선언과 사용
void 포인터는 다음과 같은 방법으로 선언됩니다.
void *ptr;
위의 예제에서 ptr은 void 포인터로 선언되었습니다. 이제 이 void 포인터에 어떤 타입의 주소도 할당할 수 있습니다.
예제와 설명
아래의 예제를 통해 void 포인터의 동작을 이해해보겠습니다.
#include <stdio.h>
int main() {
int num = 10;
float pi = 3.14;
char ch = 'A';
void *ptr;
// int 타입 변수의 주소를 void 포인터에 할당
ptr = #
printf("정수값: %d\n", *(int *)ptr);
// float 타입 변수의 주소를 void 포인터에 할당
ptr = π
printf("실수값: %.2f\n", *(float *)ptr);
// char 타입 변수의 주소를 void 포인터에 할당
ptr = &ch;
printf("문자값: %c\n", *(char *)ptr);
return 0;
}
위의 예제에서는 num, pi, ch라는 세 가지 변수를 선언하고 초기화합니다. 그리고 ptr이라는 void 포인터를 선언합니다. ptr에 각 변수의 주소를 할당하고, 이를 다시 타입 캐스팅하여 값을 출력합니다.
결과 설명
위의 예제를 실행하면 다음과 같은 결과가 출력됩니다.
정수값: 10
실수값: 3.14
문자값: A
첫 번째 출력에서는 ptr에 num 변수의 주소를 할당하여 해당 주소의 값을 출력합니다. 두 번째 출력에서는 ptr에 pi 변수의 주소를 할당하여 해당 주소의 값을 출력합니다. 마지막으로 세 번째 출력에서는 ptr에 ch 변수의 주소를 할당하여 해당 주소의 값을 출력합니다.
결론
void 포인터는 C언어에서 데이터 타입이 없는 포인터로, 어떤 타입의 주소도 가질 수 있습니다. void 포인터는 다른 포인터 타입으로 타입 캐스팅하여 사용할 수 있으며, 메모리의 일부를 일시적으로 무시하거나 다양한 타입의 데이터를 처리할 때 유용합니다. void 포인터를 사용함으로써 프로그램의 유연성을 높일 수 있으며, 다양한 데이터 타입을 처리하는 함수의 매개변수나 반환값으로 활용할 수 있습니다.
'IT > c언어' 카테고리의 다른 글
C 언어 putchar, fputc 함수 (0) | 2023.07.16 |
---|---|
C 언어 2차원 배열 포인터 (0) | 2023.07.15 |
C언어 함수 포인터 (0) | 2023.07.14 |
C언어 이중포인터 (0) | 2023.07.14 |
C언어 3차원 배열 (0) | 2023.07.14 |
댓글