본문 바로가기

잡다한 IT/참고용

const char *p 와 char* const p 의 차이점

1번째의 경우는 const 가 *p 까지 포함하므로 *p를 변경할 수 없음. p의 값은 변경 가능


2번째의 경우는 const가 p까지만 포함하므로 *p를 변경할 수 있음. 하지만 p의 값은 변경 불가

(char const *p라고 쓸 수 있지만, 쉽게 이해하기 위해 char * const p 로 알아두기)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
 
int main()
{
    int val = 7;
    int tmp = 5;
    
    const int* pt = &tmp;
    // *pt = 3;        (X)
    //pt = &val;    (O)
 
    int* const pt2 = &tmp;
    //*pt2 = 3;        (O)
    //pt2 = &val;    (X)
 
    const int* const pt3 = &tmp;
    //*pt3 = 3;        (X)
    //pt3 = &val;    (X)
 
 
    return 0;
}
cs


http://novicecoder.tistory.com/entry/const-char-p%EC%99%80-char-const-p%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90


참고 사이트

반응형