char* str = "문자열" 형태의 선언을 했을 때, 강의에서 들은 바와 달리 const를 붙이지 않거나, str= "문자열 2"로 다시 초기화를 해줘도 에러가 발생하지 않는데, 비주얼 스튜디오의 버전 문제인가요?
원래는 const를 char*앞에 붙여주어야 맞는 것인가요?
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);
}
이건 에러가 발생하지 않아요