const는 변수를 상수화 하기 위한 선언이다. 포인터 변수에도 const 선언이 가능하다.
#include <stdio.h>
int main(void)
{
int num = 20;
const int * ptr = #
// *ptr = 30; // 컴파일 에러
num = 30;
printf("test\n");
return 0;
}
위 코드와 같이 const 선언한 포인터 변수가 가리키는 변수에 저장된 값을 변경하는 것은 허용되지 않는다. 그러나 num변수로 직접 값을 변경하는 것은 가능하다.
다음 코드와 같이 const 선언은 포인터 변수의 이름 앞에 올 수 도 있다.
int * const ptr = #
위와 같이 변수 이름 앞에 const 선언을 했을 경우에는 주소 값의 변경이 불가능하다. 한 번 가리키기 시작한 변수를 끝까지 가리켜야 한다는 것이다. 가리키는 다음과 같이 가리키는 대상에 대한 저장된 값의 변경은 가능하다.
*ptr = 30;
다음과 같이 const선언을 하게 되면 주소값의 변경과, 가리키는 대상이 저장된 값 모두 변경이 불가능하다.
const int * const ptr = #
'Language > C, C++' 카테고리의 다른 글
[C] 3차원 배열 (0) | 2020.12.26 |
---|---|
[C] 2차원 배열 (0) | 2020.12.24 |
[C] Call - by - value, Call - by - reference (0) | 2020.12.20 |
[C] 함수 인자로 배열 전달 (0) | 2020.12.20 |
[C] 포인터 배열 (0) | 2020.12.19 |