포인터는 당연히 된답니다.
포인터 증가 연산자는 INC,
감소 연산자는 DEC로
예를 들어보죠. (정확한지 지금 즉석으로 만들어서 죄송)
var
mystring : PChar;
mychar : Char;
mypoint : Pointer;
begin
mystring := StrAlloc(Sizeof(Char)*(5)); //메모리 할당
StrPCopy(mystring,'kang');
mypoint := mystring ;//메모리 해제를 위해 시작 주소 기억
//현재 mystring의 포인터는 k의 주소를 가르킴
INC(mystring); //현재 mystring의 포인터는 a의 주소를 가르킴
mychar := mystring^; //마치 씨의 *mystring처럼 ^은 포인트의 값을 말함.
INC(mystring, 2); // 2만큼 포이터 증가 , g의 주소를 가르킴
mychar := mystring^; 당연히 g가 mychar에 들어감.
mystring := mypoint; // 원래 주소를 지정
StrDispose(mystring); // 메모리 해제
// 뭐 이런 식입니다. 약간 부실한 코드 같군요.
end;
물론 string변수도 포인터로 사용가능합니다.
- 컴퓨터와 나 / PCNI -
.
|