본문 바로가기
프로그래밍 언어/C언어

C언어 복습 <part3>

by 조엘 2020. 3. 12.

안녕하세요. 파피몬입니다.

 

이번 겨울방학에 최호성 선생님의 "독하게 시작하는 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언어 8~10단원.pdf
1.31MB

반응형

'프로그래밍 언어 > C언어' 카테고리의 다른 글

C언어 복습 <part4>  (0) 2020.03.24
C언어 복습 <part2>  (0) 2020.03.10
C언어 복습 <part1>  (0) 2020.03.09

댓글