본문 바로가기
반응형

전체 글56

힙기반 순차 insert data함수 1. 무한히 Link를 탐색하면서 next값이 0인 곳에 이어 붙인다. 2. prev = 초기 배열의 주소로 초기화한다. 3. n = prev->next 로 초기화한다. 기존 배열 방식의 data 정렬의 장점은 탐색이 빠른 것이다. 하지만 많은 양의 data를 추가하거나 삭제할 경우 모든 data를 이동해야하기 때문에 느린 것이 단점이다. 탐색 속도는 배열기반에 비해 느리지만, 주소값을 활용하여 data의 이동이 아닌, 주소값의 변화를 추적하여 data끼리 연결하는 것을 Link 방식이라고한다. 그리고 그런 Link 방식을 Heap 메모리에서 하면 무한히 data를 연결할 수 있기 때문에 Heap 메모리에서 진행한다. int Insert_Data(SCORE * d) { SCORE *p; SCORE *n;.. 2022. 12. 30.
포인터의 활용 포인터로 접근할 때는 크게 두가지로 나눌 수 있다. 1) 포인터가 바라보는 대상이 주소인 경우 2) 포인터가 바라보는 대상이 배열인 경우 1) int a (여기서 a는 주소이다) int *p = a; => *p (포인터로 접근) 2) int b[10] (b는 배열이다) int *p = a; => p[0] ~ p[9] (배열로 접근) 어떻게 사용하건 같은 결과가 나오지만 나눠서 사용하는 것이 좋다. 2022. 12. 27.
포인터 변수 Type Case 1 int a[4] = {1, 2, 3, 4}; 이때 a의 type은 두 가지로 생각해볼수 있다. 1 ) 주소 , 2 ) 배열. 1) 주소( 배열로 사용되는 두가지를 제외하고 모두 주소로 사용 된다. ) - a == &a[4]; 2) 배열 - &a - sizeof(a) Case 2 int a[3][4]; 이때 a의 type은 int (*)[4]이다. 이것의 뜻은 4개짜리 배열에 각각 *(포인터, 주소)가 담겨있다는 뜻이다. Case 3 int (*a[3])[4]; - a는 3개짜리 배열이다. 그 안에 *(포인터, 주소)를 담고있으며, 포인터의 주소를 따라가면 4개짜리 int형 배열이 있다. - 변수명까지 적어 주면 다음과 같다. int (*p)[4]. #include int (*func(void.. 2022. 12. 26.
[c언어] 구조체 (structure)란? 배열과 마찬가지고 구조체도 집합이다. 배열과의 차이점은 다른 type의 변수를 한번에 담을 수 있다는 것이다. 예를 들어 학생의 주민번호(int), 키(double), 성적(char)과 같이 다른 type을 배열에는 담을 수 없기 때문에 구조체(structure)에 담는다. 구조체의 기본 형태는 다음과 같다. struct st // 구조체 형틀의 이름을 st라고 붙였다. { int a; // a, b는 멤버라고 부른다. char b; }x; // struct type의 변수 x를 선언하였다. 구조체의 선언과 동시에 변수를 초기화가 가능하다. struct st // 구조체 형틀의 이름을 st라고 붙였다. { int a; // a, b는 멤버라고 부른다. char b; }x = {100, 'A'}; //변수.. 2022. 12. 26.
반응형