본문 바로가기
study/자료구조

[Chap5] 포인터와 연결리스트

by 메이02 2023. 4. 5.

[포인터에 대해 정리]

  • 모든 포인터 변수의 크기는 동일하다
  • *는 어디에 붙여도 상관없다. (char* p 던지, char *p 던지) -> 그렇지만 첫번째가 좋다 !
  • 포인터 중 void포인터는 아무것도 가리키지 않는 포인터를 의미. -> 필요할 때 마다 다른 포인터로 바꾸어서 사용
  • 포인터는 사용전에 반드시 초기화 할것 
    • void* p;
    • pi = (int*)p; -> p를 정수포인터로 변경해서 pi로 대입하는 것
  • 배열과 포인터
    • 배열 이름 = 배열의 시작부분 가리키는 포인터로 사용
  • 객체와 포인터
    • 전제)  (클래스의 객체 s와 포인터변수 ps일 때, )  's.i' == 'ps -> i' == '(*ps).i'
  • 자체 참조 클래스 : 멤버 변수들 중에 동일한 클래스의 객체를 가리키는 포인터가 한 개 이상 존재하는 클래스
    • 동적으로 객체를 생성하여 포인터로 연결하는 구조
struct ListNode{
	char datd[10];
    ListNode* link;
   }

[동적메모리와 정적메모리]

  • 정적 메모리 = 우리가 그동안 계속 그냥 사용했던 방식 ! 
  • 동적 메모리 = 포인터를 이용하는 것

[연결리스트]

  • 노드 = 상자 -> 노드안에는 데이터 필드와 링크 필드가 존재
  • '데이터 - 링크' 구조로 이루어짐.
  • 링크는 다음 노드의 데이터를 포인터로 가리킨다

'study > 자료구조' 카테고리의 다른 글

[스택 코드]  (0) 2023.04.15
[클래스 코드]  (0) 2023.04.15
[Chap5] 연결 리스트 과제  (0) 2023.04.06
[Chap4] 과제  (0) 2023.03.28
[Chap4] 큐  (0) 2023.03.28