안녕하세요. 파피몬입니다.
이번 겨울방학에 최호성 선생님의 "독하게 시작하는 C프로그래밍" 책을 유튜브 강의와 함께 공부하였습니다.
강의를 들은 내용을 종이에 정리하였고, 이 중 중요하다고 판단한 내용을 포스팅 하도록 하겠습니다.
아직 모르는 게 많은 학생이라 오개념이 있을 수 있습니다. 친절하게 댓글로 알려주시면 좋은 공부 될 것 같습니다!!
이번 Part3에서는, 8단원. 배열 / 9단원. 배열을 활용한 프로그래밍 기법 / 10단원. 함수에 대한 기본 이론에 대해서 복습해봅니다.
1. 배열은 형식이 같은 자료 여러개가 모여 새로운 하나를 이룬 형식이다.
** int aList[5] ... 배열의 이름은 여러 요소를 대표하는 첫번쨰 요소의 메모리 주소에 부여하는 식별자이다.
2. 배열의 붕괴라는 개념에 대해 알아본다. 배열의 이름에 sizeof( )나 , &연산자를 붙이는 경우 외에 붕괴한다.
** 예시와 함께 바라봅니다.
- 첫 줄의 aList는 붕괴가 됩니다. 배열을 출력할 수 없으니 &aList[0]을 출력합니다.
- 두 번째 줄의 sizeof(aList)는 붕괴할 필요가 없습니다. 배열의 크기 자체로 20을 출력합니다.
- 세 번째 줄의 &aList는 붕괴할 필요가 없습니다. 배열의 주소 대표로 첫 요소의 주소를 출력합니다.
- 네 번째 줄의 sizeof(&aList)는 붕괴할 필요가 없습니다. 32비트 환경에서 포인터는 4byte이니 이를 출력합니다.
- 다섯 번째 줄의 &aList[0]는 붕괴할 필요없이 첫 요소의 주소를 반환합니다.
- &aList[0] + 1와 aList + 1는 aList의 붕괴를 통해 같은 값을 출력합니다. 여기서 1을 더한 것은 배열의 요소 한 칸(4byte)을 뜻합니다.
- 만면 (&aList) + 1 에서 1을 더한 것은 배열의 전체 (20byte)를 더한 것을 뜻합니다.
3. 배열을 정렬하는 두 가지 방법 selection sort / bubble sort 이 있다.
** selection sort - index로 하나 지정, 마지막 1회만 교환
** bubble sort - 매번 작은걸로 자리교환
4. LookUp 배열을 통해 if-else문, switch-case문을 효율적으로 refactoring 할 수 있다.
5. 함수는 불연속적인 반복을 통한 코드 재사용을 줄여준다! 함수가 많다고 복잡한 것이 아니다. 함수를 만드는 기준은 다음과 같다
** 하나의 단위기능으로 규정할 수 있는 대상 함수로 만들 것!
** UI, 기능을 분리해줄 것!
'프로그래밍 언어 > C언어' 카테고리의 다른 글
C언어 복습 <part4> (0) | 2020.03.24 |
---|---|
C언어 복습 <part2> (0) | 2020.03.10 |
C언어 복습 <part1> (0) | 2020.03.09 |
댓글