티스토리 뷰
const 는 왼쪽에 있는 것을 상수화 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 |
int* ip;
ip = new int[10];
ip[4]= 5;
int const* ip; // 왼쪽에 있는 int 를 상수화
ip = new int[10];
ip[4] = 5; // int 값을 변경할 수 없어 컴파일 에러
int* const ip = nullptr; // 왼쪽에 있는 * 를 상수화
ip = new int[10]; // * 값을 변경할수 없어 컴파일 에러
ip[4] = 5; // 컴파일 에러, null 포인터에 대한 역참조
int* const ip = new int[10]; // 왼쪽에 있는 * 를 상수화
ip[4]= 5;
int const* const ip = nullptr; // 값과 포인터 둘다 상수화
// 첫번빼 const 왼쪽에 있는 int 와 두번째 const 왼쪽에 있는 * 상수화
const int* ip; // 적용 예외, 우측에 있는 int 를 상수화
p = new int[10];
ip[4] = 5; // int 값을 변경할 수 없어 컴파일 에러 |
cs |
예외> const 가 문장 앞에 오는 경우(19행) 오른쪽에 있는것을 상수화 한다.
1
2
3
4
5
6
7 |
const int n = 0; // 초기화 필수, // n = 0 안됨
const int* nn;
nn = &n; // OK, // *nn = 0 안됨
int* const nnn = (int* const)nn; // 초기화필수
*nnn = 0; // OK, // nnn = (int* const)&nn; 는 안됨 |
cs |