programming/c

[DAY 10] const

(reviewing)

동적 메모리 할당

단점

이름이 없기 때문에 포인터로만 이용해야 한다


데이터가 소실될 수 있기 때문에 메모리가 더이상 필요하지 않을 때까지 포인터를 이동하면 안된다!




const int *p;

int *const p;

const int *const p;


포인터는 2가지 의미가 있다.

가리키는 값(value)

가리키는 주소값(address)


가리키는 값을 const 하는건지, 가리키는 주소값(address)을 const 하는건지~.

const를 어디에 붙이냐에 따라 의미가 달라진다.


1. const int *p;        // 상수에 대한 포인터

1) 정체 : 포인터

2) const int를 가리키는

== 값을 바꿀 수 없는 포인터(읽기 전용 포인터)

정말 많이 쓴다.

ex. 출력할 때



2. int *const p;    // 상수 포인터

1) 정체 : *const

2) int p;

(배열명도 같은 역할을 한다)


3. const int *const p; : 상수에 대한 상수 포인터


이건 거의 쓰는 경우가 없다. 너무 제한적이기 때문