메모리와 포인터에 들어가기에 앞서, 메모리에 대해 간략하게 소개하겠습니다. 변수의 본질은 메모리이며 모든 메모리는 자신의 위치를 식별하기 위한 근거로 고유번호(일련번호)를 갖는데, 이 번호를 메모리의 주소라 합니다. 메모리의 종류 메모리는 그 용도에 따라 스택(stack), 힙(heap), 데이터 영역(data section), 텍스트 영역(text section) 등으로 나누어 집니다. 분류 특징 Stack 자동변수이고 지역변수인 변수가 사용하는 메모리 영역 / 크기가 작고 관리(할당 및 반환)가 자동으로 이루어 지는 장점입니다. Heap 동적 할당할 수 있는 자유 메모리 영역이며, 개발자 스스로 관리(수동)해야 합니다. 따라서 대량의 메모리가 필요하거나 필요한 메모리의 크기를 미리 알 수 없을 때 사..
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 달팽이 배열의 교차의 규칙은 따뜻한 색계열과 차가운 색계열로 표시를 했습니다. 1. x 증가 -> y 증가 2. x 감소 -> y 감소 3. x 증가 -> y 증가 4. x 감소 -> y 감소 라는 규칙을 찾을 수 있습니다. #include int main(void) { int aList[5][5] = { 0 }; int x = -1, y = 0, nCounter = 0; int i = 0, j = 0, nLength = 9, nDirection = 1; for (nLength = 9; nLength > 0; nLength -= 2) { ..
저는 강의에서 소개하는 3가지 방법의 구현들을 소개하도록 하겠습니다. 예제는 지그재그 형태의 배열을 예로 들겠습니다. -------------------- 1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 20 19 18 17 16 21 22 23 24 25 ----------------------- 1. 보수를 이용하는 방법 or 점점 빼가는 방식 가장 기본적인 방법이라고 생각합니다. #include int main(void) { int aList[5][5] = { 0 }; int i = 0, j = 0, nCounter = 0; for (i = 0; i < 5; i++) { if (i % 2 == 0) { for (j = 0; j < 5; j++) { aList[i][j] = ++nCo..
// selection_sort #include int main(void) { int aList[5] = { 7, 1, 5, 3, 6 }; int i, j, temp = 0; for (i = 0; i aList[j]) { temp = aList[i]; aList[i] = aList[j]; aList[j] = temp; } for (i = 0; i < 5; i++ ) printf("%d\t", aList[i]); return 0; } // bubble_sort #include int main(void) { int aList[5] = { 10, 50, 30, 20, 40 }; int i = 0, j = 0, te..
- Total
- Today
- Yesterday
- timecomplexity
- Algorithm
- 비트필드
- 간접 지정
- 3차원 배열
- 구조체
- 공부
- 시간복잡도
- 공간복잡도
- 강의
- 2차원 배열
- 형승격
- 다차원 배열
- 포인터
- 종류
- call by reference
- C
- 공용체
- call by value
- 알고리즘
- 직접 지정
- inflearn
- codeit
- 자료구조
- 1차원 배열
- 회전리스트
- 프로그래밍
- 재귀함수
- 파이썬
- 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |