Delphi의 포인터와 C 언어의 포인터가 사용될 때의 간단한 대비

1241 단어
2년 동안 일했는데 그 동안 오래된 프로젝트가 유지보수를 필요로 하기 때문에 항상 델파이를 사용하여 개발을 하고 낡은 프로그램에서 수정을 했다. 델피의 지침을 만나면 항상 그럭저럭 지낸다. 정말 합격한 프로그래머의 태도가 아니다. 그래서 이 시간을 빌려 필기를 하고 자신을 깨우친다.
1. 포인터의 정의
특정 유형의 포인터 정의
C 언어:
int *num;
char *ch;

Delphi:
var
    num : ^Integer;
    ch : ^char;

또는 Delphi를 사용하여 정의된 Pinteger, PChar 등의 유형을 사용합니다.
2. 유형 포인터 없음
포인터 유형은 기본 유형 변수의 값을 가리키며 Delphi에서 Pointer는 기본 유형이 없는 포인터이기 때문에 형식 Pointer의 변수를 직접 인용할 수 없습니다. 즉, 이러한 변수 뒤에 기호를 쓰는 것은 잘못된 것입니다.그러나 유형을 특정 유형의 포인터로 변환한 후 사용할 수 있다.Pointer 유형의 값은 다른 모든 포인터 유형의 값과 일치합니다.
C 언어:
void *p;

Delphi:
var
  p : Pointer;

3. 주소 찾기
바늘 변수는 기계의 메모리 주소를 저장하고 있으며, 바늘에 값을 부여하려면 주소 찾기 조작을 사용하여, 변수(바늘 자체 포함)가 메모리에 있는 주소를 제거해야 한다.
C 언어:
pt = &Factory;

Delphi:
pt := @Factory;

4. 목표를 취한다
포인터에 값을 부여한 후, 사용할 때 포인터가 가리키는 대상을 꺼내서 사용해야 한다. 이럴 때는 포인터를 가리키는 대상을 꺼내서 사용해야 한다.
C 언어:
char *pa;
char pb='s';
pa = &pb;
pb = *pa;

Delphi:
var
  i ,j: Integer;
  p : ^Integer;
i := 123;
p := @i;
j := p^+1;

좋은 웹페이지 즐겨찾기