> 백엔드 개발 > C++ > C 언어에서 근거리, 원거리 및 거대 포인터 설명

C 언어에서 근거리, 원거리 및 거대 포인터 설명

WBOY
풀어 주다: 2023-09-14 15:13:02
앞으로
1579명이 탐색했습니다.

C 언어에서 근거리, 원거리 및 거대 포인터 설명

메모리 모델과 세그먼트에 따라 포인터는 세 가지 유형으로 구분됩니다.

  • 근접 포인터
  • 원거리 포인터
  • 대형 포인터

근접 포인터

  • 는 64Kb 메모리 데이터 내에서 작동하는 포인터입니다. 세그먼트 범위 포인터.

  • 해당 데이터 세그먼트를 벗어난 주소에는 액세스할 수 없습니다.

  • 주소 범위 산술 연산자를 사용하여 근거리 포인터를 늘리거나 줄일 수 있습니다.

  • near 키워드를 사용하면 모든 포인터를 가까운 포인터로 만들 수 있습니다.

문법

구문은 다음과 같습니다. -

<data type> near <pointer definition>
<data type> near <function definition>
로그인 후 복사

다음 명령문은 변수 s

char near *string;
로그인 후 복사

Program

의 Near 포인터를 선언합니다. 다음 프로그램은 Near 포인터의 사용법을 보여줍니다.

#include<stdio.h>
int main(){
   int number=50;
   int near* p;
   p=&number;
   printf("%d",sizeof(p));
   return 0;
}
로그인 후 복사

Output

출력은 다음과 같습니다. -

2
로그인 후 복사

Far 포인터

  • 포인터의 서로 다른 오프셋과 세그먼트 주소를 저장하는 포인터입니다.

  • < li>

    16개 세그먼트 모두에 액세스할 수 있습니다.

  • 원거리 포인터 주소 범위는 0~1MB입니다.

  • 포인터가 증가하거나 감소하면 오프셋 부분만 변경됩니다.

문법

구문은 다음과 같습니다. -

<data type> far <pointer definition>
<data type> far <function definition>
로그인 후 복사

다음 문은 s

char far *s;
로그인 후 복사

Program

변수의 원거리 포인터를 선언합니다. 다음 프로그램은 원거리 포인터의 사용법을 보여줍니다.

#include<stdio.h>
int main(){
   int number=50;
   int far *p;
   p=&number;
   printf("%d",sizeof number);
   return 0;
}
로그인 후 복사

Output

출력은 다음과 같습니다. -

4
로그인 후 복사

Big 포인터

  • 둘 다 32비트 주소이므로 먼 포인터와 비슷한 크기의 포인터입니다.

  • 대형 포인터는 세그먼트 작업 루프의 영향을 받지 않고 증가될 수 있습니다.

Procedure

다음 프로그램은 큰 포인터의 사용을 보여줍니다.

#include<stdio.h>
Int main(){
   Char huge *far *ptr;
   Printf("%d%d%d",sizeof(ptr),sizeof(*ptr),sizeof(**ptr));
   Return 0;
}
로그인 후 복사

Output

출력은 다음과 같습니다 -

4 4 1
로그인 후 복사

위 내용은 C 언어에서 근거리, 원거리 및 거대 포인터 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿