Null 포인터와 Void 포인터의 차이점은 Null 포인터는 값이고 Void 포인터는 유형이라는 것입니다.
NULL 포인터
널 포인터는 아무 것도 가리키지 않는다는 의미입니다. 포인터에 할당된 주소가 없으면 null로 설정합니다.
포인터 유형, 즉 int *, char *는 각각 null 포인터 값을 갖습니다.
구문은 다음과 같습니다 -
<data type> *<variable name> = NULL;
예를 들어,
int *p = NULL; char *p = '\0';
예시 프로그램
다음은 NULL 포인터에 대한 C 프로그램입니다 -
#include<stdio.h> int main(){ printf("TutorialPoint C Programming"); int *p = NULL; // ptr is a NULL pointer printf("\n The value of pointer is: %x ", p); return 0; }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
TutorialPoint C Programming The value of pointer is: 0
보이드 포인터
void 포인터는 데이터 유형이 없는 포인터일 뿐입니다. 범용 포인터라고도 합니다. 모든 데이터 유형의 주소를 보유할 수 있습니다.
구문은 다음과 같습니다 -
void *<data type>;
예를 들어,
void *p; int a; char c;
피 =&//p는 정수의 주소가 할당됨에 따라 정수 포인터로 변경
피 =&c; //p는 문자의 주소가 할당되면 문자 포인터로 변경됩니다.
예시
다음은 Void Pointer를 위한 C 프로그램입니다 -
#include<stdio.h> int main(){ int a = 10; void *ptr = &a; printf("%d", *(int *)ptr); return 0; }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
10