오늘 지옥같은 외근을 마치고 강의를 들으러 왔습니다.


강의를 듣는 주만 꼭 외근이 잡히는 머피의 법칙.... 아...





=====  1  =====



[ 19 : 00~ 19 : 55 

 

 

일단 오늘도 역시 강사님의 사전테스트풀이와 자기소개, 그리고 수강생 개인의 자기소개가 있었습니다.


강사님께서 이름이 특이해서인지 되게 오래전에 한번 뵜었던 것 같은데 기억을 해 주셔서 감사하다는 마음이 들었습니다.







=====  2  =====



[ 20 : 05~ 21 : 06 

 

 

포인터!


2번째 시간에는 포인터부터 강의를 시작하셨습니다.



포인터 강의를 한창 하시다가 광교의 모델하우스 구경한 이야기를 해 주셨습니다. 블로깅을 하면서 왜 뜬금없이 이 얘기를 하시지? 라는 생각을 하자마자 왜 이 이야기를 했는지 감이 왔습니다.


이번장의 제목인 포인터와 무척 연관이 있어서 이야기를 시작하신 것 같은 느낌이 들었습니다. 


그리고 강사님께서 그러한 설명을 이어서 하셨습니다. 본인이 보고온 모델하우스를 아내분에게 보여주는 방법


1. 모델하우스를 뜯어다가 아내분 앞에 가져온다 (현실적이지는 않지만 모델하우스를 볼 수 있음)

2. 모델하우스의 주소를 알려줘 아내분이 찾아가서 보도록 함


... 등등


즉, 위의 2번을 이야기하기 위해 강사님께서는 이런 이야기를 하셨습니다.


포인터는 주소를 가리키는 개념인데, 이것 보다는 주소값을 저장하고 있다는것과 같은 의미이고, 강사님께서는 이렇게 이해하는것을 권장하셨습니다.


즉, 주소값을 저장하고있는 변수다. => 포인터 변수 - 흔히 줄여서 포인터라고만 부르기도 하지만, 포인터 변수가 맞음.


따라서 포인터 변수에는 일반적인 값이 저장될 수 없고, 메모리의 주소값만 저장할 수 있습니다.



<실습 1> 포인터 예제




이 예제에서 *기호의 의미와 사용에 대해서 설명을 해 주셨습니다.


*기호는 선언을 할 때에는 이 변수가 포인터변수임을 나타내는 것이고, 사용을 할 때에도 *기호를 붙여서 사용을 해야한다고 하셨습니다.





포인터의 연산에 대해서는 포인터의 덧셈과 뺄셈을 보면 덧셈뺄셈 모두 가능하지만, 포인터간의 덧샘은 의미가 없으며, 포인터간의 뺄셈은 두 포인터간의 차(차이)로 거리개념으로 사용한다고 하셨습니다. 이 내용은 





=====  3  =====



[ 21 : 15~ 21 : 55 

 

 

강사님의 개인 메일주소를 알려주시고, 인터넷에서 블로그, 잡지인터뷰등의 활동을 하신것을 잠시 보여주셨습니다.



그리고, 이어서 이론수업, 이번에는 포인터에 정수를 더하거나 빼는 연산을 통해 그 결과에 대해서 설명을 해 주셨습니다.


"주소값에 상수를 더하거나 빼면, 그 대상 포인터의 위치로부터 이동한 주소값이다." 라는 내용이었습니다.



<실습 2> 포인터 변수의 타입과 크기




포인터 변수의 크기는 타입과 상관없이 4Byte인데, 왜 타입을 적고 사용하는가? 라는 질문을 하셨고, 이번 수업을 들으면서 직전에 그런 고민을 하다가 딱 떠오른 아이디어로 답변을 하였습니다.


Type을 알아야 해당 주소로 가서 올바른 값을 가져올 수 있기 때문입니다. 


교제에 나온 조금 더 정리된 답변은 포인터 변수가 가리키는 변수들의 실제값을 참조하기 위함이라고 하셨습니다.





간단한 숙제아닌 숙제를 내 주시고 다음장으로 넘어갔습니다.






배열과 포인터



포인터와 배열의 관계

문자열 상수와 포인터

포인터 배열

배열 포인터




포인터와 배열의 관계


배열이름의 의미


 - 배열은 같은 종류의 변수를 여러 개 선언할 때 사용하는 형식

 - 배열의 이름은 해당 배열의 첫 번째 요소의 주소값


배열의 이름또한 상수인 포인터변수이므로 연산을 통해 포인터처럼 증감하여 주소값을 탐색할 수 있습니다.



포인터 변수도 배열처럼 사용할 수 있습니다.

+ Recent posts