삽질의 현장/- C

[Surro] :: Pointer - 1. pointer의 이해

shovelman 2013. 11. 29. 16:09

메모리 주소 - 컴퓨터 내부에 데이터를 저장하는 공간을 나타내는 주소

> 메모리는 특정 위치를 찾아가기 위해 주소라는 것을 가지고 있다.

 

 

변수 선언 시 : 메모리의 특정위치에 기어공간에 할당됨.

 

 

 

* 주소 연산자 '&' -  변수가 저장된 주소를 알려준다.

 

 

 

1. 포인터 변수

 

 

1.1 포인터 변수에 변수의 메모리 주소 저장하기

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. 포인터와 함수

- 함수의 주소 전달 방식이란 함수 호출 후에 실 매개변수의 값을 변경하기 위한 전달 방식.

 

2.1 값 전달 방식 (Call by Value)

 

 

 

 

 

 

* 값 전달 방식으로 해결 되지 않는 문제

: 값 전달 방식의 경우 매개변수를 위해 새로운 메모리 공간을 할당하기 때문에 함수에서 매개변수를 변경해도 반영이 되지 않는다.

 

 

2.2 주소 전달 방식 (Call by Address)

 

 

 

 

* Call by Adress 방식 과정

 

 

3. 포인터 배열

 

 

 

 

 

* 포인터 배열에 배열의 주소 값을 저장 할 수도 있다.

ex) int a[2] = {1,2};

      int b[2] = {3.4};

int c[2] = {5,6};

 

int *p[3] = {a,b,c}; // 배열의 시작 주소는 배열의 이름.

 

 

 

 

4. 포인터 함수

- 함수에 대한 포인터 변수는 메모리 영역에 저장된 함수의 시작 주소를 가진다.

 

리턴형 (*함수 포인터 변수명) (매개변수)

* 리턴형과 매개변수의 형과 개수가 똑같은 함수만이 들어갈 수 있다.