1. 1주차
Review_Pointer
복합자료형 (Compunded data types)
- Derived Types
1) Array
2) Pointer
3) Class
4) Enumerated
5) Structure
6) Union
Variable and memory

address

Pointer
- 주소값이 할당이 안된상태.
- *ptr : ptr에 다른 변수의 주소값을 넣어줄거야.

- 변수 'a'의 주소값 할당
- ptr = &a;
- ptr에게 주소값을 할당할거야(선언) : int *ptr
- ptr의 주소값은 'a'의 주소값이야(할당) : ptr = &a;

- 'Pointer ' is a variable that contains a memory address of other variable (does not contain actual data).
This is why we call it 'Pointer' since it is used to POINT other variable.
-> " 포인터는 메모리 주소 값을 갖는 변수 "
- *ptr 출력시 해당 Value값이 출력되는걸 알 수 있음 (address X)



- 메모리상의 문자변수와 해당 문자의 주소값 (포인터 상수)


포인터 변수 선언 방법

Uninitialized pointer

포인터 변수 선언과 주소값 할당의 관계.

Exchanging Variables (call by Value)
- temp라는 변수의 공간을 만들어주고 x의 값을 넣어준다 (temp는 5값을 갖음)
- x에는 y의 값을 심어주고 (x는 7이됨)
- y에는 x가 temp에게 심어준 5의 값을 넣어준다. (y가 5가됨)
- 따라서 두 변수의 값이 교환됨.

Exchanging Pointer Variables (call by Address)
- &a는 a의 주소값 , &b는 b의 주소값 값 의미.
- int *px => &a
- int *py => &b
즉, 주소값을 가르키며 해당 주소가 품고 있는 변수의 값을 가지게됨.
- temp에 a의 주소값 할당한다는 의미는 a의 값을 temp에게 넘긴다는 의미( temp는 5가됨)
- px = py (a에게 b의 주소 즉, b의 값인 5를넘겨줌으로써 a는 5가됨)
- py = temp (py의 주소값 즉 b에게 temp값인 5를 넘겨줌으로써 b는 5가됨)
- a와 b의 값이 교환됨.
