Const는 변수 선언시 자료형 앞뒤에 사용되는 변수를 상수로 선언한다. 

즉 Const로 선언된 변수는 수정할 수 없다. 

포인터와 const 키워드 
#include<stdio.h>

void main()
{
	int a = 10;
	int b = 20;

	const int *pa = &a;
	//*pa = 20; //값을 변경할 수 없다. (Error)
	pa = &b;	//주소 변경 가능
	
	int const *pb = &b;
	pb = &a;

	int* const p = &a;
	*p = 30;
	
}
위에서 보면 const int *pa와 int const *pb은 같은 내용이다.
즉 *pb 값 포인터에 의해서 읽혀지는 값을 변경할 수 없다.
그러나 주소 변경은 가능하다. 

const int *pa = int const *pa =  const int* pa

다 같은 표현인 것이다.  

int* const p 는 다르다. 값의 변경은 가능하지만 포인터값의 p의 주소값을 수정할 수 없다.  

 

+ Recent posts