const char* vs. char const*
code 를 보다 보니 C/C++ 에서 사용하는 const 에 대한 내용은 알고 있지만, 막상 보면 어디가 상수로 결정되어 수정될 수 없는지 계속 찾아 보게된다.
그래서 검색을 해보았더니, 예제로 잘 정리된 내용이 있어 갖고 왔다.
original url : http://stackoverflow.com/questions/162480/const-int-vs-int-const-as-function-parameter-in-c-and-c
아래서 처럼 const int 와 int const 는 같은 의미로 사용되어 진다.
const int a = 1; // read as "a is an integer which is constant"
int const a = 1; // read as "a is a constant integer"
그래서 아래와 같이 2를 넣을 수 없다.
a = 2; // Can't do because a is constant
하지만 pointer 변수일 때는 다르게 해석이 되는데, 하나는 주소값을 변경하지 못하는 것과 다른 하나는 주소가 가리키고 있는 값의 변경을 할 수 없는 것이다. 아래의 주석을 잘 읽어보면 이해가 될 것이다.
const char *s; // read as "s is a pointer to a char that is constant"
char c;
char *const t = &c; // read as "t is a constant pointer to a char"
*s = 'A'; // Can't do because the char is constant
s++; // Can do because the pointer isn't constant
*t = 'A'; // Can do because the char isn't constant
t++; // Can't do because the pointer is constant
'Development Tip' 카테고리의 다른 글
Git add -p 로 수정사항 분리하기 (0) | 2014.04.16 |
---|---|
Git: 특정 commit 으로 이동 후, amend 하기 (0) | 2014.02.28 |
Fish shell environment (0) | 2013.12.03 |
Kernel mailing list 활용 방법 (0) | 2013.11.08 |
PuTTY 설정 값 공유하는 방법 (0) | 2013.10.07 |