관리 메뉴

HeeJ's

[01] const :: C언어 본문

<Programming>/<C>

[01] const :: C언어

meow00 2020. 2. 13. 17:20

const는 변수 앞에 붙여 값과 주소를 변경할 수 없도록 해준다.

해당 변수를 상수로 취급한다.

 

변수의 초기 값을 변경할 수 없는 변수; 상수 or const 상수

 

int max;
max = 10;

이라는 코드가 있다.

 

여기에 상수 변수를 선언해보면

const int max;
max = 10; //에러

선언 이외의 값을 지정해주게 되면 오류가 생기게 된다.

 

const int max = 10;
max = 20; //에러

선언과 동시에 초기화해도 되며

이 이후에도 상수 값을 변경하면 오류가 생기게 된다.

 

 

 

 

const 포인터 변수

const int* max = &value;

혹은

int* const max = &value;

로 표현할 수 있다.

위의 경우는, 포인터 변수 안의 값을 변경할 수 없고,

아래의 경우는 포인터 변수의 주소값을 변경할 수 없다.

 

int value = 10;
const int *max;

max = &value;
*max = 20; //에러
int value = 10;
int* const max = &value;

max = &value; //에러
*max = 20;

 

포인터 변수 안의 값과 주소값을 모두 변경할 수 없도록 하려면

const를 두 번 붙여주면 된다.

const int* const max = &value;
int value = 10;
int* const max = &value;

max = &value; //에러
*max = 20; //에러

'<Programming> > <C>' 카테고리의 다른 글

[02] error C2078: 이니셜라이저가 너무 많습니다  (1) 2020.02.13