본문 바로가기
VisualStudio.C++.C#/코딩팁,함수활용,단편

char*, const char*, char* const

by i.got.it 2015. 12. 23.

 

char* v;

v는 문자, 문자열이 저장된 메모리의 첫주소를 저장할 수 있는 포인터변수.

char* v = "문자열상수1";  초기화 했어도 코드중에 언제든 변경가능.

v="문자열상수2"; v="문자열상수3"; 등등. 모두 가능.

 

 

const char * v;

v는 문자열이 저장된 메모리의 첫주소를 저장할 수 있는 포인터변수, 

금지되는것  :  v 주소 메모리의 내용 변경불가.

즉, v는 "상수문자열" 의 포인트변수라는 의미.

한편, const 의 대상이 v 자체가 아니므로 v가 가리키는 주소는 변경가능함. 

 

예를들면,

const char* v = "난 문자열 상수1이다";   로 초기화 했어도, 코드상에서 아래 처럼 다른 문자열의 메모리 주소를 대입가능하다는 말.

v = "난 문자열 상수2임.";   가능함. v에 다른 문자열주소는 대입가능.

*v = "난 문자열 상수2임."; 허용안됨. v 주소메모리의 값을 변경 의도한것인데,  const char* v; 의 정의가 이런거 못하게 하는거임.

 

 

 

char* const v;

v는 문자열이 저장된 메모리의 첫주소를 저장할 수 있는 포인터변수,

금지되는것 : 초기화 할때 한번 지정된 문자열 메모리 주소 변경못함.

예를들면,

char* const v = "난 문자열 상수1이다.";  로 초기화 했는데,

코드중에서 v="난 문자열 상수2임.";  으로 하는것 허용안됨.

 


 본 글이 포함된 상위 정리 장소.

 

 Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11

 

 

///515.

 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5