Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어에서 Void 포인터로 NULL 포인터 구별하기

<시간/>

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