개인노트

[C언어] 포인터 대상의 const 선언 본문

C/문법

[C언어] 포인터 대상의 const 선언

BillnairK 2017. 7. 3. 13:59

* C언어에서 const란 변수를 상수화(값을 고정) 시키는 목적이다. *

* 또한 const를 선언하게 되면 안전성이 향상된다. *


 예시1 

< 그림 1 >

< 그림 2 >


[ 예시 1번 해석 ]


그림 1의 const int * ptr = &num; 코드와 그림 2의 int const * ptr = &num; 코드는 동일한 뜻을 가진 코드이며, 

포인터 변수 ptr에 저장된 변수의 값을 상수로 선언한 것이다.

다시 설명하자면 포인터 변수 ptr에 저장된 변수 num의 메모리 값을 참조하여 num에 저장된 값을 바꿀 수 없다는 뜻이다.

즉, num에 저장된 값은 num = 40; 과 같이 선언해서 바꿀 수는 있지만 ptr에 선언된 메모리 주소 값을 통해서는 바꿀 수 없다. 


 예시2 

< 그림 3 >


[ 예시 2번 해석 ]


그림 3은 그림 1, 그림 2와 달리 * 뒤에 const를 선언한 것을 볼 수 있다. 

이것은 포인터 변수 자체에 상수 선언을 한 것이며 포인터에 저장된 주소 값을 바꿀 수 없다는 의미이다.

즉, 포인터 변수에 저장된 메모리 값을 참조하여 변수에 저장된 값을 바꿀 수 있지만 저장된 메모리 값 자체는 바꿀 수 없다.

Comments