문자열 관련 질문입니다

bln01 Reply 4 years 21 weeks ago
char* str = "문자열" 형태의 선언을 했을 때, 강의에서 들은 바와 달리 const를 붙이지 않거나, str= "문자열 2"로 다시 초기화를 해줘도 에러가 발생하지 않는데, 비주얼 스튜디오의 버전 문제인가요? 원래는 const를 char*앞에 붙여주어야 맞는 것인가요?
withcs2 Reply 4 years 21 weeks ago
const (Constant) 는 변하지 않는 고정값이라고 보시면 됩니다. const가 앞에 안붙어있으면 다시 초기화할 수 있어요. 굳이 바꾸지 않아도 되는 값에 const를 사용하면 메모리를 효율적으로 사용할 수 있습니다. const char* str은 주소값이 고정되어 있다는 의미이며, 해당 주소 안에 있는 값은 바뀔 수 있습니다 #include <stdio.h> int main(void){ const int i=0; i=12345; printf("%d",i); } 이런 식으로 만들면 에러가 발생하지만 #include <stdio.h> int main(void){ const int* i; i=12345; printf("%d",i); } 이건 에러가 발생하지 않아요