상수화 시켜줄 땐 선언과 동시에 초기화 필수!
#include <stdio.h> // C소스의 헤더파일
int main()
{
int num1 = 100;
int num2 = 200;
int num3 = 300;
const int * parr1 = &num1;
// 포인터 변수의 주소 값은 바뀔 수 있지만 포인터 변수가 따라가는 arr1에 담긴 데이터가 바뀌지 않음
int * const parr2 = &num2;
// 포인터 변수의 주소 값이 고정되어 있고, 포인터 변수가 따라가는 arr2에 담긴 데이터는 바뀔 수 있음
parr1 = &num3;
*parr2 = 400;
printf("%d\n", * parr1);
printf("%d\n", * parr2);
return 0;
}
const int num = 10;
- 변수 10을 상수화
const int * ptr1 = &val1;
- val1의 데이터 값을 상수화
- 주소값은 바꿀 수 있음
- 포인터 ptr1을 이용해서 val1의 값을 변경 못 함
int * const ptr2 = &val2;
- ptr2의 상수화...주소값 변경 불가능
- 데이터는 바꿀 수 있음
- 포인터 ptr2가 상수화 됨
const int * const ptr3 = &val3;
- 포인터 ptr3가 상수화 됨
- ptr3를 이용해서 val3의 값을 변경 할 수 없음