-
const의 위치에 따른 이야기..@ 16. 1 ~ 17. 1/C++ 2013. 2. 23. 21:12
일반 변수형..
cont int a=10;
int const a=10;
같다. 똑같다 그냥..
그런데.. 포인터형을 가지고 있을때..
int* const ptr; ---- (1)
const int* ptr; ---- (2)
이 두개는 비슷해보여도..틀리다.
우선 1번은..자료형보다 앞에 있으니까..int* const // const가 자료형보다 뒤에 있으니까..(우측기준..)
이건 ptr이 해당 주소를 변경하지 못한다는 이야기임..주소가 상수
즉, int* const ptr=&a; 일때
ptr=&b; 가 안된다는 것이다.
물론..*ptr=값 이런식으로 해당주소의 값은 변경이 가능하다.
그리고 이것은 초기화가 필요하다. int* const ptr; 이런식이면 에러..int* const ptr=&a; 이런식이 되야함..
다음 2번은 자료형보다 앞에 있으니까..자료형을 상수화 자료를 상수화..?!
해당주소의 정수를 상수화 한다.
즉, *ptr=값 이런식으로 안된다는 것이다.
물론..ptr=&b; 는 가능하다!..
이건 초기화 필요없음..
'@ 16. 1 ~ 17. 1 > C++' 카테고리의 다른 글
2차원 동적배열 생성, 초기화, 복사 (0) 2013.02.24 operator +, operator - friend를 이용 (0) 2013.02.24 배열 포인터, 포인터 배열 (0) 2013.02.22 달력만들기 (0) 2013.02.20 369숫자를 찾아 *로 표시하기 (0) 2013.02.18