문자열 상수는 어디에 저장될까?
2020. 6. 22. 15:47ㆍ프로그래밍/Note
수업 중 문자열 상수는 Data 영역에 저장된다는 이야기를 듣고
모든 문자열 상수, 막 썼던 "Hello World" 라던가 전부 Data 영역에 저장되는거야? 라는 의문이 들어 정리
결론은 상황에 따라(컴파일러의 성능에 따라) 이럴수도 있고 저럴수도 있고
개념적으론
char szB[] = "Hello World";
문자 배열의 초기화리스트로 사용할 때는 스택에 할당되고
char* szA = "Hello World";
이런식으로 쓸 때는 Data 영역에 저장된 문자열 상수의 포인터(const char*)를 받아온다고 생각하는게 속편할 듯 싶다.
실제로 언제 어떻게 할당하냐 마냐는 컴파일러가 똑똑하게 알아서 처리해주겠지~
참고)
문자열 상수는 어디에 저장될까?
https://stackoverflow.com/questions/7943628/where-will-a-constant-string-be-stored-in-memory 1. char * szA = "abc"; 이때의 "abc"는 const char 문자열 상수로 DATA에 저장된다. 즉 static과 같은 느낌으로..
kid5.tistory.com
'프로그래밍 > Note' 카테고리의 다른 글
Analysis of Platformers (0) | 2020.07.12 |
---|---|
구글 C++ 스타일 가이드 (feat. 전방선언) (0) | 2020.07.10 |
코드 읽기 (0) | 2020.06.30 |
클래스의 크기 (0) | 2020.06.23 |
Security Features in the C Run-Time Libraries (CRT) (0) | 2020.06.22 |