본문 바로가기

포인터5

[자료구조]이중 연결 리스트(Doubly Linked List) 참고 : 이중 연결 리스트는 단순 연결 리스트와 함께 가장 많이 사용되는 연결 리스트의 형태이다. 단순 연결 리스트가 다음의 노드를 가리키는 하나의 링크를 가져서 바로 전의 노드를 알 수 없던 단점에 비해서, 이중 연결 리스트는 다음의 노드를 가리키는 링크와 전의 노드를 가리키는 링크 두 가지를 가져서 바로 전의 노드에도 접근할 수 있다는 것이 가장 큰 장점이다. 물론 하나의 링크를 더 사용하기 때문에 단순 연결 리스트보다는 메모리를 더 소모 한다. 이중 연결 리스트의 Node 구조이다. 12345typedef struct _dnode{ int key; // 정보 struct _dnode *prev; // 전 노드링크 struct _dnode *next; // 다음 노드링크} dnode;cs이중 연결 리.. 2016. 2. 17.
[c언어] void 포인터 포인터란 주소(address)를 내용으로 가지는 변수(variable)이다. 포인터는 크게 두가지 요소로 구성되어 있다. 첫째, 내용으로 가지는 주소둘째, 가리키는 주소에 저장되어 있는 데이터의 형(data type)이다. 이 두가지만 잘 생각하고 응용하면 조금 복잡할 찌라도 해결할 실마리를 줄것이다. void 포인터란 포인터의 두 가지 요소중 둘재 요소인 가리키는 데이터형이 정해지지 않은 포인터를 의미한다. void 포인터의 정의는 가리키는 데이터형이 없으므로 데이형 자리에 void라는 예약어를 기술하면 된다. 1void *vptr;csvoid 포인터는 주소만 저장하는 포인터인데 그로 인해서 포인터 연상자를 사용할 때 주의해야 할 점이 있다. 첫째, 포인터가 가리키는 곳의 내용을 읽어내는 역참조(der.. 2016. 1. 26.
[C언어] 2차원 배열과 포인터 1차원 배열과 포인터에 대해서는 포스팅을 했다. 그런데 1차원 배열과 포인터 보다 더 중요한 2차원 배열과 포인터에 대한 내용을 포스팅 해보도록 하겠다. 기본적으로 1차원 배열도 많이 사용하지만 2차원 배열을 사용해야 할때 또한 다분히 존제 한다. 우선 기본 소스를 우선 보고 하나하나 찾아가 보자. Colored By Color Scripter™123456789101112131415161718192021222324252627282930313233int main(){ int i, j; int imsi[3][2] = {{6,3},{9,1},{7,2}}; int (*imsip)[2]; // 선언 imsip = imsi; // A for(i = 0; i Colored By Color Scripter™123456.. 2014. 7. 6.
[C언어] 1차원 배열과 포인터 배열과 포인터를 자유 자제로 사용하는 법에 대해서 알아보도록 하자.아래 소스를 보면서 이야기를 시작하다로고 하자. Colored By Color Scripter™123456789101112#include int main(){ int imsi[3] = { 5, 3, 7}; //배열 int* imsip; // 포인터 imsip = imsi; // 포인터 초기화 printf("%d\n",*imsip); // A } A의 결과에 대해서 생각해보자. 배열과 포인터의 관계에 대해서 조금 알고 있는 분이라면 답이 근방 나왔을 것이다. 결과는 '5'이다. 결과를 통해서 알 수 있는 사실에 대해서 생각해 보자. 1. 배열명은 주소를 뜻한다. 2. 배열명은 배열의 첫번째 배열 요소의 주소를 뜻한다. 위의 예제를 통해서 우.. 2014. 6. 29.
[C언어]포인터의 기초(pointer) 포인터는 번지에 대한 기호화된 표현을 말한다. 즉, 포인터는 번지이다. Colored By Color Scripter™1int pint;pint라는 변수를 정의하면, 시스템이 프로그램이 실행중에 위의 정의를 만나면 pint에 대하여 4바이트의 메모리를 할당해준다. 시스템이 할당해준 4바이트는 다른 프로세스(다른 실행중인 프로그램)들이 할당 받지 못하므로 안전하게 사용할 수 있다. 이 4바이트는 각 바이트마다 모두 주소를 가지고 있는데 이를 번지라고 한다. 결국 포인터라는 것은 메모리의 위치(번지)를 표현한 기호인 것이다. 포인터 변수 - 포인터는 메모리의 특정 위치(주소,번지)를 가리킨다고 했다. 포인터 변수는 포인터(주소, 번지)를 저장할 수 있는 변수를 말한다. 포인터 변수는 번지 이외에는 어떠한 것.. 2014. 6. 26.