점심을 먹고 2시부터 오후강의를 시작했습니다.



========================================  4  ========================================

[ 14 : 00~ 14 : 53 

 

 

함수 


방앗간 기계를 통해 함수를 비유적으로 설명 해 주셨습니다. 


함수를 사용하는 이유는 기능을 나누어서 처리하기 위해서입니다.

또한 부가적으로 가독성이 좋아지며, 유지보수 및 확장이 용이해집니다.



함수의 종류와 표준함수에 대해서 조금 더 설명을 해 주셨습니다. 

코드를 작성하면서 본 main함수 외에도 printf와 같은 함수인 표준함수에 대해  개념적으로 설명을 해 주셨습니다.

표준함수란, C언어에서 제공 해 주는 함수입니다. 


함수의 구성 요소로는 자료형, 함수이름, 인수목록, 함수 내용이 있습니다.


<사진 1> 간단한 함수 작성 - 더하기 함수.


함수의 원형, 정의, 호출



========================================  5  ========================================

[ 15 : 03~ 16 : 00 

 

 

변수의 범위

-지역변수

-전역변수

-static변수 : 함수를 빠져나가도 변수가 메모리에 유지되는 변수.



<사진 1> 변수의 범위와 메모리 존제


배열


강사님께서 배열 강의를 시작하시면서, C언어는 배열과 포인터가 서로 많이 연관되어 쓰이고 그것을 잘 익힌다면 C언어의 80%이상은 이해한 것이라고 하셨습니다.


배열이란, 같은 속성을 가진 것들을 나열해 놓은 것입니다.

배열의 속성은 아래와 같습니다.

- 요소들이 순서대로 여러개 모인 것

- 요소들은 모두 같은 속성을 지니고 있다.




========================================  6  ========================================

[ 16 : 13~ 17 : 07 



 배열예제를 시작으로 강의를 이어가셨습니다.


<사진 1> 배열 예제



코드에 sizeof()함수를 사용하는데 그 함수는 인자로 받은 객체(여기서는 변수)의 크기를 반환 해 줍니다. 

sizeof(arrGrade) 의 경우는 위에서는 배열의 크기가 5로 설정되어 있어서 int형 배열이므로 4bytes씩 5개라 20 bytes, 그리고 sizeof(arrGrade[0]) 의 경우는 4bytes입니다. 따라서 배열의 크기인 5가 나오게 됩니다.

위와같이 작성 한 이유는 나중에 배열의 길이를 늘려도 코드를 수정할 필요가 없기 때문입니다.


<사진2>

<사진3>  배열의 복사가 되지 않는 이유와 배열의 이름이 갖는 값



배열의 복사 : 배열은 각 요소끼리 복사를 해야한다.

<사진 4> 배열의 복사


배열과 문자열, 문자열 변수

<사진 5> 문자열

null문자 : 문자열의 끝에 추가되는 문자로, 컴퓨터가 문자열의 끝을 구분하기 위해 사용함.



========================================  7  ========================================

[ 17 : 13~ 17 : 53 



 Pointer , 포인터


포인터에 대해 진도를 나가시면서 시간이 조금 부족해서 고급과정이 생긴다면 포인터를 가지고만 15시간 강의를 하실 것이라고 하셨습니다. 또한 설명을 시작 하시면서 포인터는 직접 이면지에 그려보면서, 메모리를 그려보면서 하는 것이 포인터를 이해하는데 도움이 된다고 하셨습니다.



포인터의 개념


 - 포인터의 의미는 어느 특정 주소를 가리키거나 향하게 하고 있다는 뜻이다.

 - 주소값을 가리킨다는 의미는 그 주소값을 가지고있다는 의미이다.


 포인터란 메모리의 주소값을 가리키는 변수이다. 쉽게 말하면 주소값을 저장하는 변수입니다.


포인터는 연산이 가능합니다. 더하기는 안되고 빼기는 가능합니다. 연산에 대한 설명은 시간관계상 생략하겠다고 하셨습니다. 

위에 더하기가 안된다는 포인터와 포인터의 더하기 연산이 되지 않으며 정수를 더하여 연산을 할 수 있습니다.


포인터 변수는 무조건 4바이트를 잡습니다. 주소값은 4bytes 면 저장이 가능하기 때문입니다.


포인터의 타입? 참조를 하기 위해 타입을 알아두는 것으로, 값에 대해서 제어를 하기 때문에 type을 알고 control을 하기 때문입니다. 



포인터에 여러타입이 있는 이유는? 여러 타입의 객체를 제어하기 위해서입니다.


+ Recent posts