문제

아래 파스칼 코드는 무엇을 의미합니까?

p^.rlink=q
q^.llink=p
도움이 되었습니까?

해결책

파스칼 연산자 ^. 연산자와 유사합니다 -> C 및 C ++에서.

그것은 포인터를 해석합니다 (당신의 경우, p 정의해야합니다 var p: ^type) 및 레코드의 변수에 액세스합니다 (이 경우) rlink 그리고 llink.

다른 팁

CARET (^)가 포인터 변수 후에 나타나면 포인터를 해석합니다. 즉, 포인터가 보유한 메모리 주소에 저장된 값을 반환합니다. 그래서 당신의 경우 나는 그것을 생각합니다 p 레코드에 대한 포인터입니다 rlink 속성 및 q 레코드에 대한 포인터입니다 llink 재산. 이러한 특성은 또한 동일한 구조에 대한 포인터입니다. p 그리고 q 그런 다음 그들에게 할당됩니다. 이 구조는 왼쪽 및 오른쪽 노드가있는 이진 트리 데이터 유형을 나타냅니다.

가능성은 P와 Q가 A의 요소라는 것입니다. 이중 연결 목록, 종종 양방향 링크 목록이라고합니다. 이 두 문장은 "왼쪽"에 P와 "오른쪽"에 Q를 함께 첨부하고 있습니다. C/C ++의 동등한 것은 다음과 같습니다.

p->rlink = q;
q->llink = p;

그만큼 ^포인터를 따르십시오 . 레코드 구성원에게 액세스하십시오. 그래서이 줄은 아마도 그래프 어떤 종류의.

P와 Q는 포인터 인 것 같습니다. 그들은 각각 (또는 아마도 둘 다), rlink 및 llink (오른쪽 링크 및 왼쪽 링크 추측)를 가진 레코드 변수를 가리 킵니다.

이 스 니펫은 아마도 그래프 또는 링크 된 종류의 종류의 목록에서 사용될 수 있습니다.

Pascal의 Caret (^) 연산자는 Dereference Opertator로, 포인터가 아닌 가변 컨텐츠에 액세스 할 수 있습니다.

C 언어의 직접적인 동등한 일입니다

(p*).rlink=q
(q*).llink=p

그러나 물론 이것은 일반적으로 다음과 같이 표현 될 것입니다

p->rlink=q
q->llink=p

한 단계로 연기 및 멤버 액세스를 수행하는 C의 -> 연산자를 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top